《AJAX深入淺出》是一本關(guān)于AJAX編程的經(jīng)典教材。在這本書中,異步請求的實現(xiàn)主要依賴于JavaScript中的XMLHttpRequest對象。以下是一個簡單的示例,展示了如何使用XMLHttpRequest對象實現(xiàn)異步請求:
ajax_example.html
,并在其中添加以下內(nèi)容:<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AJAX 異步請求示例</title>
<script src="ajax_example.js"></script>
</head>
<body>
<button onclick="sendRequest()">發(fā)送請求</button>
<div id="result"></div>
</body>
</html>
在這個示例中,我們創(chuàng)建了一個按鈕,當點擊該按鈕時,會觸發(fā)sendRequest
函數(shù)。同時,我們還有一個<div>
元素,用于顯示請求的結(jié)果。
ajax_example.js
,并在其中添加以下內(nèi)容:function sendRequest() {
// 創(chuàng)建一個新的XMLHttpRequest對象
var xhr = new XMLHttpRequest();
// 設(shè)置請求的類型和URL
xhr.open('GET', 'https://jsonplaceholder.typicode.com/todos/1', true);
// 設(shè)置請求完成時的回調(diào)函數(shù)
xhr.onload = function() {
if (xhr.status >= 200 && xhr.status < 400) {
// 請求成功,將返回的數(shù)據(jù)解析為JSON格式,并在頁面上顯示
var data = JSON.parse(xhr.responseText);
document.getElementById('result').innerHTML = data.title;
} else {
// 請求失敗,顯示錯誤信息
document.getElementById('result').innerHTML = '請求失敗,狀態(tài)碼:' + xhr.status;
}
};
// 設(shè)置請求錯誤時的回調(diào)函數(shù)
xhr.onerror = function() {
document.getElementById('result').innerHTML = '請求出錯';
};
// 發(fā)送請求
xhr.send();
}
在這個示例中,我們首先創(chuàng)建了一個新的XMLHttpRequest對象,然后設(shè)置了請求的類型(GET)、URL(https://jsonplaceholder.typicode.com/todos/1)以及是否異步(true)。接下來,我們設(shè)置了請求完成時的回調(diào)函數(shù),用于處理返回的數(shù)據(jù)。如果請求成功,我們將返回的數(shù)據(jù)解析為JSON格式,并在頁面上顯示;如果請求失敗,我們顯示錯誤信息。最后,我們調(diào)用xhr.send()
方法發(fā)送請求。
當用戶點擊“發(fā)送請求”按鈕時,瀏覽器會發(fā)起一個異步請求,并在請求完成后執(zhí)行相應(yīng)的回調(diào)函數(shù)。這樣,我們就可以在不刷新整個頁面的情況下,實現(xiàn)與服務(wù)器的數(shù)據(jù)交互。