下面列出了常見的AJAX面試問題和答案。
AJAX代表異步JavaScript和XML。它是一組用于異步顯示數(shù)據(jù)的相關技術。換句話說,它在不重新加載網(wǎng)頁的情況下發(fā)送和檢索數(shù)據(jù)。
//創(chuàng)建 XMLHttpRequest 對象
var ajax = new XMLHttpRequest();
//規(guī)定請求的類型、URL 以及是否異步處理請求。
ajax.open('GET',url,true);
//發(fā)送信息至服務器時內(nèi)容編碼類型
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//發(fā)送請求
ajax.send(null);
//接受服務器響應數(shù)據(jù)
ajax.onreadystatechange = function () {
if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) {
}
};
5、ajax幾種請求方式?他們的優(yōu)缺點?
常用的post,get,delete。不常用copy、head、link等等。
區(qū)別:
(1)post比get安全 (因為post參數(shù)在請求體中。get參數(shù)在url上面)
(2)get傳輸速度比post快 根據(jù)傳參決定的。(post通過請求體傳參,后臺通過數(shù)據(jù)流接收。速度稍微慢一些。而get通過url傳參可以直接獲取)
(3)post傳輸文件大理論沒有限制 get傳輸文件小大概7-8k ie4k左右
(4)get獲取數(shù)據(jù) post上傳數(shù)據(jù)(上傳的數(shù)據(jù)比較多 而且上傳數(shù)據(jù)都是重要數(shù)據(jù)。所以不論在安全性還是數(shù)據(jù)量級 post是最好的選擇)
同步請求會阻止用戶,直到檢索到響應,而異步不會阻止用戶。
下面給出了XMLHttpRequest對象的重要屬性。
onReadyStateChange
- 只要readystate屬性發(fā)生變化,就會調(diào)用它。readyState
- 表示請求的狀態(tài)。responseText
- 它將響應作為文本返回。responseXML
- 它以XML格式返回響應。status
- 返回請求的狀態(tài)編號。statusText
- 返回狀態(tài)的詳細信息。abort()
- 用于取消當前請求。getAllResponseHeaders()
- 返回標題詳細信息。getResponseHeader()
- 返回特定的標題詳細信息。open()
- 用于打開請求。send()
- 用于發(fā)送請求。setRequestHeader()
- 它添加了請求標頭。open(method,URL)
- 它打開指定get或post方法和URL的請求。open(method,URL,async)
- 它與上面相同但是指定異步或不指定。open(method,URL,async,userName,password)
- 與上面相同,但指定用戶名和密碼。send()
- 它發(fā)送get請求send(string)
- 發(fā)送帖子請求。回調(diào)函數(shù)將函數(shù)作為參數(shù)傳遞給另一個函數(shù)。如果我們必須在網(wǎng)站上執(zhí)行各種AJAX任務,那么我們可以創(chuàng)建一個用于執(zhí)行XMLHttpRequest的函數(shù)和一個用于執(zhí)行每個AJAX任務的回調(diào)函數(shù)。
JSON代表JavaScript Object Notation。在AJAX中,它用于在瀏覽器和服務器之間交換數(shù)據(jù)。它很容易理解,數(shù)據(jù)交換比XML快。它支持數(shù)組,對象,字符串,數(shù)字和值。
request.onreadystatechange = function (){
if(request.readyState == 4)
{
var jsonObj = JSON .parse(request.responseText); // JSON.parse()返回JSON對象
的document.getElementById( “日期”).innerHTML = jsonObj .date;
的document.getElementById( “時間”).innerHTML = jsonObj .時間;
}
}
有幾種用于調(diào)試AJAX應用程序的工具。
在AJAX中有兩種類型的回發(fā)。
在AJAX中有5個請求的就緒狀態(tài)。
JUnit是客戶端JavaScript的開源單元測試框架。需要創(chuàng)建測試用例。單元測試用例是一個代碼,用于確保程序邏輯按預期工作。
JavaScript | AJAX |
---|---|
JavaScript是一種基于對象的腳本語言。 | AJAX是一組相互關聯(lián)的技術,如JavaScript,XML,HTML,CSS等 |
它請求服務器并等待響應。 | 它向服務器發(fā)送請求,不等待響應。 |
重新加載頁面時會占用更多帶寬。 | 它不會重新加載頁面,因此占用的帶寬更少。 |
更多建議: