js學習總結----ajax中的http請求方式及同步編程和異步編程
阿新 • • 發佈:2017-08-01
功能 依然 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請求方式及同步編程和異步編程