標籤:san while set 時間 window tin 客戶 creat 發送
一、請求方式
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的長度存在限制,Google8kb、Firefox7kb、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);//先輸出0while(1){}//加了while之後定時器裡面的代碼就不會執行//如果多個定時器的時間都到了,先執行時間短的這個定時器//AJAX中的同步:當AJAX任務開始的時候(XHR.SEND)需要等到readyState===4,才可以執行下面的任務//AJAX中的非同步:當AJAX任務開始的時候(XHR.SEND)不需要等到readyState===4,我們依然可以繼續做其他的任務,並且只有其他的任務完成後,我們在看是否為4,到達4的時候做一些相關的操作
js學習總結----ajax中的http請求方式及同步編程和非同步編程