<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技術都可以幫助我們更方便地與數據庫進行交互。