AJAX即「Asynchronous Javascript And XML」(異步JavaScript和XML),是指一種建立交互式網頁應用的網頁開發技術。ajax
AJAX = 異步 JavaScript和XML(標準通用標記語言的子集)。數據庫
AJAX 是一種用於建立快速動態網頁的技術。瀏覽器
優勢:安全
不須要插件支持服務器
用戶體驗極佳app
提高Web程序性能異步
減輕服務器和寬帶的負擔函數
缺點:工具
前進後退按鈕被破壞性能
搜索引擎的支持不夠
開發調試工具缺少
1.建立 XMLHttpRequest 對象的語法:
1 variable=new XMLHttpRequest();
2.老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 對象:
1 variable=new ActiveXObject("Microsoft.XMLHTTP");
正如您在上面的示例中所看到的,XMLHttpRequest對象起着重要做用。
POST和GET的區別:
1.POST主要用來發送數據,GET主要用來接受數據;
2.PSOT發送數據的安全性較好,而GET較差;
3.POST發送數據不限制大小,而GET大小受限2~100k。
何時用GET和POST:在數據獲取時用GET方式,在操做數據時應使用POST方式。
1.GET鏈接
1 function ajaxGet(url,cb,data){ 2 data = data || {}; 3 var str = ""; 4 for(var i in data){ 5 str += `${i}=${data[i]}&`; 6 } 7 var d = new Date(); 8 url = url + "?" + str + "__qft="+d.getTime(); 9
10 var xhr = new XMLHttpRequest(); 11 xhr.open("get",url,true); 12 xhr.onreadystatechange = function(){ 13 if(xhr.readyState == 4 && xhr.status == 200){ 14 cb(xhr.responseText) 15 } 16 } 17 xhr.send(); 18 }
2.POST鏈接
1 function ajaxPost(url,callback,data){ 2 data = data || {}; 3 var str = ""; 4 for(var i in data){ 5 str += `${i}=${data[i]}&`; 6 } 7
8 var xhr = new XMLHttpRequest(); 9 xhr.open("POST",url,true); 10 xhr.onreadystatechange = function(){ 11 if(xhr.readyState == 4 && xhr.status == 200){ 12 callback(xhr.responseText); 13 } 14 } 15 xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 16 xhr.send(str); 17 }
當發送一個請求後,客戶端須要肯定這個請求何時會完成,所以,XMLHttpRequest對象提供了onreadystatechange
事件機制來捕獲請求的狀態,繼而實現響應。
當請求被髮送到服務器時,咱們須要執行一些基於響應的任務。
每當readyState
改變時,就會觸發onreadystatechange
事件。
readyState
屬性存有 XMLHttpRequest 的狀態信息。
回調函數是一種以參數形式傳遞給另外一個函數的函數。
若是您的網站上存在多個 AJAX 任務,那麼您應該爲建立 XMLHttpRequest 對象編寫一個標準的函數,併爲每一個 AJAX 任務調用該函數。
該函數調用應該包含 URL 以及發生onreadystatechange
事件時執行的任務(每次調用可能不盡相同)