1. 程式人生 > >js學習總結----ajax中的http請求方式及同步編程和異步編程

js學習總結----ajax中的http請求方式及同步編程和異步編程

功能 依然 interval 需要 發送請求 console dom 屬於 相關

一、請求方式

var xhr = createXHR();
xhr.open("get","/getList?num=12",true);
xhr.open("post","/getList",true);
xhr.send(‘{"name":"zhangsan","age":7}‘)
//HTTP METHOD;客戶端向服務器端發送請求的方式
//以下的請求方式不管哪一種都可以向服務器傳遞數據,也可以從服務器中獲取到數據,從本質意義上講以下的方式是沒有任何區別的,例如用post做的事情用get也能做,而我們接下來講的區別都是目前開發者們約定俗成的規範:
/*
    GET:一般應用於從服務器獲取數據(給服務器的數據少,從服務器拿的數據多,項目中最常用的請求方式就是get)
        使用GET請求給服務器傳遞內容我們一般都使用"URL問號傳參的方式"
    POST:一般應用於向服務器推送數據(給服務器的多,從服務器拿下來的少)
        使用POST請求給服務器傳遞內容我們一般都使用"請求主體的方式"傳遞給服務器
    PUT:一般應用於給服務器上增加資源文件(我們上傳圖片功能)
    DELETE:一般應用於從服務器上刪除資源文件
    HEAD:一般應用於只獲取服務器的響應頭信息
*/ /* GET PK POST 大小問題: GET請求傳遞給服務器的內容存在大小的限制,而POST理論上沒有限制 原因:GET通過URL傳參給服務器,而每個瀏覽器對於URL的長度存在限制,谷歌8kb、火狐7kb、IE12kb的長度限制,如果URL的長度超過限制,瀏覽器會把超出的部分截取 緩存的問題: GET請求會出現緩存(這個緩存不一定是304),POST是沒有緩存的 在項目中我們的GET請求一般不會讓其出現緩存"清楚緩存":在url的末尾加一個隨機數 xhr.open("get","/getList?num=12&_="+Math.random(),true); 安全問題 一般來說GET不安全,而POST相對安全一些
*/

二、同步編程和異步編程

//同步(SYNC)和異步(ASYNC)編程
//JS是屬於單線程的,我們最好使用異步編程
//定時器都是異步編程的
//事件綁定都是異步編程的
//回調函數也可以理解為異步編程
//在AJAX中可以使用異步編程
var count = 0;
window.setInterval(function(){
    count++;
    console.log(count);//再輸出1
},1000)//如果定時器的時間設置為0也不是立馬執行,而是需要等待一段時間,我們設定的時間是1000ms,但是不一定時間到就會執行,如果當前瀏覽器的線程被占用,會一直等待
console.log(count);//先輸出0
while
(1){ }//加了while之後定時器裏面的代碼就不會執行 //如果多個定時器的時間都到了,先執行時間短的這個定時器 //AJAX中的同步:當AJAX任務開始的時候(XHR.SEND)需要等到readyState===4,才可以執行下面的任務 //AJAX中的異步:當AJAX任務開始的時候(XHR.SEND)不需要等到readyState===4,我們依然可以繼續做其他的任務,並且只有其他的任務完成後,我們在看是否為4,到達4的時候做一些相關的操作

js學習總結----ajax中的http請求方式及同步編程和異步編程