先介紹XMLHttpRequest對象,我們都知道Ajax它不是單單一門技術,而是幾種技術的融合。 XMLHttpRequest是Ajax技術體系中最為核心的技術,如果沒有XMLHttpRequest,Ajax的其餘技術就無法成為一個有機的整體。在Ajax應用程式中XMLHttpRequest物件負責將使用者資訊以非同步方式傳送到伺服器,並接收伺服器傳回的回應訊息和資料。
XMLHttpRequest時XMLHttp元件的一個對象,使用XMLHttpRequest可以實現不向伺服器提交整個頁面的情況下,局部更新網頁資訊。可能這麼說有點抽象吧,大家都經常進QQ空間看好友動態,有些好友分享了視頻,我們點擊播放之後無論是在視頻緩衝期間還是在播放期間滑鼠跟鍵盤都沒有喪失活動能力,我們可以繼續瀏覽其他動態,而我們在上下滑動滑鼠滾輪的時候,影片頁面也跟著我們瀏覽的目前位置上下移動,如下圖所示,這樣的功能就可以透過Ajax實現。
XMLHttpRequest物件提供了一系列的屬性和方法來向伺服器發送非同步HTTP請求。在伺服器處理使用者請求的過程中,XMLHttpRequest物件透過屬性的狀態值來即時反映HTTP請求所處的狀態並根據得到的狀態指導javascript做對應的處理。此外當伺服器順利回應使用者動作並將使用者傳回時,XMLHttpRequest提供的response系列方法可以將傳回的資料組裝成文字格式、XML格式或unsigned
byte資料格式提供的javascript腳本處理。
使用XMLHttpRequest物件傳送請求和處理回應之前,必須使用javascript建立XMLHttpRequest物件。由於XMLHttpRequest物件目前還不是W3C標準,所以在新版本IE瀏覽器、舊版IE瀏覽器以及非IE瀏覽器中的建立方法也不同。因此在建立XMLHttpRequest物件之前需要先判斷瀏覽器的類型。對於版本較低的IE瀏覽器需要使用Microsoft.XMLHTTP,而對於版本較高的IE瀏覽器需使用Msxml2.XMLHTTP。
下方是建立XMLHttpRequest物件的程式碼:
##
<span style="font-family:KaiTi_GB2312;font-size:18px;"> <script language="javascript" type="text/javascript"> var xmlHttp; //使用新版本的IE创建XMLHttpRequest对象 try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { //使用旧版本的IE创建XMLHttpRequest对象 try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) {} } //使用其他浏览器创建XMLHttpRequest对象 if (!xmlHttp && typeof XMLHttpRequest !='undefined') { try{ xmlHttp=new XMLHttpRequest(); } catch (e) { xmlHttp = false; } } </script></span>
# 從程式碼中我們可以看出,雖然需要進行邏輯判斷,但建立XMLHttpRequest物件並不複雜。自己對於XMLHttpRequest的理解也不是很透徹,只是根據影片中的實例和Ajax程式設計技術課本中的知識進行了整理,希望大家可以多多交流,共同進步。
#