ajax技術的核心是xmlhttprequest物件,簡稱xhr。
xhr最早由ie引入並實現,原生的xhr僅支援ie7以上版本。如果要相容ie6,需作另外處理(activexobject物件)。
1、簡單ajax函式的封裝:
function ajax( method , url , data )else
if( method.tolowercase() = "get" )
xhr.open( method , url ,true );
xhr.onreadystatechange = function()else}}
if( method.tolowercase() = "get")
else
}
2、xhr的用法
xhr.open():呼叫open()方法並不會真正傳送請求。
引數:請求型別 , 請求url , 是否非同步請求。
xhr.send(): 呼叫send()方法後,請求會被分發到伺服器。
引數:如果不需要傳送資料,則必須傳入null。 //對某些瀏覽器是必須的。
xhr.readystate:表示請求/響應過程中的當前活動階段。值為0 1 2 3 4 :
每次readystate值的變化,都會觸發readystatechange事件。可以利用這個事件來檢測每次狀態變化後readystate的值。
3、get請求與post請求
get請求:get請求需要將資料放在url中,通過open()的url引數一起提交給後台。
get請求在open傳遞url的時候,鍵值對(key/value)需要進行encodeuriconent()編碼。
post請求:post請求需要將資料放在send()中,提交給後台。
資料為經過序列化之後的字串。
post請求需要模仿表單提交資料:設定頭部資訊。
get請求與post請求的區別:
1、formdata
建立了formdata的例項後,可以將它直接傳給xhr的send()方法。
1var data = new formdata( document.forms[0] ) ;
2 xhr.send( data );
使用formdata傳送post請求,就不用再設定請求頭了。
2、進度事件
知識梳理計畫
知識的學習一般來說有兩個過程,第乙個是摳細節,理解知識,另乙個是將知識點進行總結歸納融入到自己的知識體系中。如果工作學習過程中需要用到該知識點的時候可以很快的提取出來。在這幾年的學習以及研究生活中,我也陸陸續續的鑽研過一些演算法,但是很多東西,都是當時懂了,但是過了一段時間,可能就忘記了,等到需要使...
Hive 知識梳理
1 order by,sort by,distribute by,cluster by 背景表結構 在講解中我們需要貫串乙個 例子,所以需要設計乙個情景,對應 還要有乙個表結構和填充資料。如下 有 3 個字段,分別為 personid 標識某乙個人,company 標識一家公司名稱,money 標識...
music 知識梳理
專案架構 vue init webpack vue music專案目錄介紹及其圖示字型,公共樣式等資源準備 src api common fonts image js stylus components router store main.js 修改package.json檔案 stylus 0.5...