天天看點

不懂JQuery的孩子:自封裝Ajax函數

前言                                      

  一直沒痛下決心學習jquery,但平時項目中又要用到ajax,于是自己寫一個函數封裝一下友善項目中偷懶吧!今天一不小心看到介紹xmlhttp對象的部落格,細讀一下重新認識了一下xmlhttp對象,獲益良多,順便重構一下自己寫的ajax函數。

認識xmlhttp對象                            

  xmlhttp:提供用戶端與http伺服器通信的協定。對于ie浏覽器通過window.activexobject()擷取,其他浏覽器用window.xmlhttprequest()擷取。

xmlhttp對象的屬性:

不懂JQuery的孩子:自封裝Ajax函數

xmlhttp對象的方法:

不懂JQuery的孩子:自封裝Ajax函數

其中readystate有0,1,2,3,4這五個值

0:執行個體化了xmlhttp對象,還沒調用xmlhttp對象的open方法;

1:調用xmlhttp對象的open方法,但還沒調用send方法;

2:調用send方法後,伺服器傳回響應頭,這時可以通過xmlhttp.getresponseheader()來擷取響應頭;

3:伺服器傳回部分響應内容,這時可以xmlhttp.responsetext有值,但隻是部分内容而已,不能保證資料完整;

4:伺服器處理完畢,這時xmlhttp.responsetext的值為完整的響應内容,資料完整。

注意:

  1.上面的readystate不是每種浏覽器都俱全。

  2. 因asp.net預設啟動了輸出緩存,如果不手動加上response.flush()的話,那麼最後響應完成後2、3、4狀态會一連串地變換。

具體實作                                

代碼:

xmlhttpmanagerhaspool.js

使用執行個體——進度條:

aspx檔案

aspx.cs檔案

ajax封裝包基本寫好了,不過對于javascript依然有很多不清楚的地方,要好好學一下才行。

繼續閱讀