最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

AJAX入門之XMLHttpRequest慨述

 更新時間:2006年06月25日 00:00:00   作者:  
在使用XMLHttpRequest對象發(fā)送請求和處理響應之前,必須先用JavaScript創(chuàng)建一個XMLHttpRequest對象。由于XMLHttpRequest不是一個W3C標準,所以可以采用多種方法使用JavaScript來創(chuàng)建XMLHttpRequest的實例。Internet Explorer把XMLHttpRequest實現(xiàn)為一個ActiveX對象,其他瀏覽器(如Firefox、Safari和Opera)把它實現(xiàn)為一個本地JavaScript對象。由于存在這些差別,JavaScript代碼中必須包含有關的邏輯,從而使用ActiveX技術或者使用本地JavaScript對象技術來創(chuàng)建XMLHttpRequest的一個實例。

  很多人可能還記得從前的那段日子,那時不同瀏覽器上的JavaScript和DOM實現(xiàn)簡直千差萬別,聽了上面這段話之后,這些人可能又會不寒而栗。幸運的是,在這里為了明確該如何創(chuàng)建XMLHttpRequest對象的實例,并不需要那么詳細地編寫代碼來區(qū)別瀏覽器類型。你要做的只是檢查瀏覽器是否提供對ActiveX對象的支持。如果瀏覽器支持ActiveX對象,就可以使用ActiveX來創(chuàng)建XMLHttpRequest對象。否則,就要使用本地JavaScript對象技術來創(chuàng)建。代碼清單2-1展示了編寫跨瀏覽器的JavaScript代碼來創(chuàng)建XMLHttpRequest對象實例是多么簡單。

  代碼清單2-1 創(chuàng)建XMLHttpRequest對象的一個實例

var xmlHttp;

function createXMLHttpRequest() {
  if (window.ActiveXObject) {
   xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else if (window.XMLHttpRequest) {
   xmlHttp = new XMLHttpRequest();
  }
}

  可以看到,創(chuàng)建XMLHttpRequest對象相當容易。首先,要創(chuàng)建一個全局作用域變量xmlHttp來保存這個對象的引用。createXMLHttpRequest方法完成創(chuàng)建XMLHttpRequest實例的具體工作。這個方法中只有簡單的分支邏輯(選擇邏輯)來確定如何創(chuàng)建對象。對window.ActiveXObject的調用會返回一個對象,也可能返回null,if語句會把調用返回的結果看作是true或false(如果返回對象則為true,返回null則為false),以此指示瀏覽器是否支持ActiveX控件,相應地得知瀏覽器是不是Internet Explorer。如果確實是,則通過實例化ActiveXObject的一個新實例來創(chuàng)建XMLHttpRequest對象,并傳入一個串指示要創(chuàng)建何種類型的ActiveX對象。在這個例子中,為構造函數(shù)提供的字符串是Microsoft.XMLHTTP,這說明你想創(chuàng)建XMLHttpRequest的一個實例。

  如果window.ActiveXObject調用失?。ǚ祷豱ull),JavaScript就會轉到else語句分支,確定瀏覽器是否把XMLHttpRequest實現(xiàn)為一個本地JavaScript對象。如果存在window.

  XMLHttpRequest,就會創(chuàng)建XMLHttpRequest的一個實例。

  由于JavaScript具有動態(tài)類型特性,而且XMLHttpRequest在不同瀏覽器上的實現(xiàn)是兼容的,所以可以用同樣的方式訪問XMLHttpRequest實例的屬性和方法,而不論這個實例創(chuàng)建的方法是什么。這就大大簡化了開發(fā)過程,而且在JavaScript中也不必編寫特定于瀏覽器的邏輯。

相關文章

最新評論

内丘县| 昔阳县| 太白县| 和顺县| 连江县| 乌鲁木齐县| 临安市| 吴江市| 辉南县| 海晏县| 玉屏| 乌鲁木齐县| 稷山县| 新蔡县| 镇平县| 沙田区| 朝阳县| 苏尼特右旗| 新津县| 龙门县| 宁陵县| 邛崃市| 堆龙德庆县| 铜陵市| 达尔| 即墨市| 肇东市| 漳平市| 元朗区| 云梦县| 平定县| 枣强县| 马鞍山市| 松阳县| 黑水县| 渭源县| 分宜县| 通海县| 霸州市| 河南省| 松滋市|