HTTP和AJAX(七 AJAX中的同步與非同步)

2021-08-26 08:49:21 字數 1871 閱讀 6763

******ajax中的同步和非同步

>ajax這個任務:傳送請求接收到響應主體內容(完成乙個完整的http事務)

>xhr.send():任務開始

>xhr.readytate===4:任務結束

[同步程式設計]

//=>只輸出一次結果是4

>由於採用的是同步程式設計,所以主任務佇列沒有完成(其它事情都做不了);

1->2 2->3 3->4 狀態改變3次  xhr.readystate===4  ajax任務完成,

主任務佇列也執行完成,執行等待任務佇列中的事情

此時的onreadystatechange只識別了從1->4,執行一次只輸出的結果是4    

xhr.send();//=>[同步]開始傳送ajax請求,開啟ajax任務,在任務沒有完成之前,

什麼事情都做不了(下面繫結事件也做不了)=>loading=>當readystate===4的時

候ajax任務完成,開始執行下面的操作

//=>readystate===4

xhr.onreadystatechange=()=>;

//=>繫結方法之前狀態已經為4了,此時ajax的狀態不會再改變成其他值了,所以事件永遠不會被觸發,一次都沒執行方法(使用ajax同步程式設計,不要把send放在事件監聽之前,這樣我們無法在繫結的方法中獲取到響應主體的內容)

[非同步程式設計]    

//=>非同步程式設計;不需要等ajax任務結束,此時等待任務佇列就已經完成了

1->2:響應頭資訊返回了,狀態改變會觸發事件監聽,把繫結的方法執行

2->3:繫結的方法再次執行

3->4:繫結的方法再次執行

ajax任務也完成了

//=>xhr.readystate===1  ajax特殊處理的一件事:執行open狀態變為1,會主動把之前監聽的方法執行一次,然後再去執行send    

xhr.send();

//=>xhr.readystate===4  ajax任務結束,主任務佇列完成

原生ajax和jQuery中的ajax使用

ajax是一種能夠向伺服器請求額外的資料而不需重新整理頁面,會帶來更好的使用者體驗。ajax技術的核心是xmlhttprequest物件。ie7及現在瀏覽器中,使用原生xhr建立 ajax請求有兩種,同步請求和非同步請求,在open 中第三個引數設定是否非同步 true代表該次請求非同步,false...

ajax入門和自己封裝ajax

ajax 是什麼?ajax 現在允許瀏覽器與伺服器通訊而無須重新整理當前頁面的技術都被叫做ajax 或者是不重新重新整理整個頁面,只重新整理區域性頁面的一種非同步通訊技術 ajax技術的核心 xmlhttprequest物件 傳送請求到伺服器並獲得返回結果 常用方法 就緒碼 就緒碼 示例functi...

和AJAX相關的內容 HTTP 快取 DOM

一 http 協議 1.作用 規範了資料是如何打包的 以及 資料時如何傳遞的 2.message 訊息 報文 message 指的是在http客戶端與伺服器間傳遞的資料塊 分類 1 request message 客戶端向伺服器傳送的 請求 訊息 2 response message 伺服器端根據客...