<button id="category1" onclick="getProducts('category1')">Category 1</button>
<button id="category2" onclick="getProducts('category2')">Category 2</button>
<button id="category3" onclick="getProducts('category3')">Category 3</button>
<div id="product-list"></div>
在上面的代码中,我们为每个商品分类按钮添加了一个点击事件,并调用了一个名为"getProducts(category)"的JavaScript函数。这个函数将负责发送Ajax请求并将服务器返回的商品列表添加到页面上的一个div元素中(id为"product-list")。
接下来,我们需要在JavaScript代码中实现这个"getProducts(category)"函数。这个函数将使用XMLHttpRequest对象来发送异步请求,并通过回调函数处理服务器返回的结果。以下是一个简单的示例代码:function getProducts(category) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
var productList = JSON.parse(xhr.responseText);
var productDiv = document.getElementById("product-list");
// 清空原有内容
productDiv.innerHTML = "";
// 动态生成商品列表
for (var i = 0; i < productList.length; i++) {
var product = productList[i];
var productItem = document.createElement("div");
productItem.innerHTML = product.name;
productDiv.appendChild(productItem);
}
} else {
alert("Failed to get product list.");
}
}
};
xhr.open("GET", "http://example.com/api/products?category=" + category, true);
xhr.send();
}
在这段代码中,我们首先创建了一个XMLHttpRequest对象(xhr),并为其onreadystatechange事件绑定了一个匿名函数作为回调函数。在回调函数中,我们首先检查了xhr的readyState属性是否为4,即请求已经完成。然后,我们进一步检查xhr的status属性是否为200,即请求成功。
如果请求成功,我们首先使用JSON.parse()函数将服务器返回的JSON字符串解析为JavaScript对象。然后,我们获取页面上的product-list元素,并清空其内部的内容。接下来,我们使用一个循环动态生成商品列表,并将每个商品添加到product-list元素中。
如果请求失败,我们弹出一个提示框以告知用户获取商品列表失败。
最后,我们调用xhr的open()方法来设置请求的方法、URL和是否使用异步方式。然后,我们调用xhr的send()方法发送请求。
通过以上的代码,当用户点击商品分类按钮时,就会触发Ajax请求,然后通过获取服务器返回的商品列表,并将其动态添加到页面上的一个div元素中。这样,用户就可以在不刷新整个页面的情况下,快速浏览不同分类下的商品了。
通过Ajax技术,我们实现了在不刷新整个页面的情况下获取并显示域中数据库的内容,从而提高了用户体验和整体性能。在实际的应用中,我们可以根据具体需求设置更多的请求参数,并对返回的数据进行更复杂的处理和展示。
总结起来,Ajax技术以其强大的异步请求和响应能力,在Web开发中发挥着重要作用。通过在前端页面中使用JavaScript来发送Ajax请求,并使用服务器返回的数据动态更新页面内容,可以大大提升用户体验和应用性能。无论是在线商城应用、社交媒体平台还是其他Web应用,Ajax技术都可以帮助我们更方便地与数据库进行交互。