程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> AJAX入門之XMLHttpRequest慨述

AJAX入門之XMLHttpRequest慨述

編輯:.NET實例教程
     在使用XMLHttpRequest對象發送請求和處理響應之前,必須先用JavaScript創建一個XMLHttpRequest對象。由於XMLHttpRequest不是一個W3C標准,所以可以采用多種方法使用Javascript來創建XMLHttpRequest的實例。Internet Explorer把XMLHttpRequest實現為一個ActiveX對象,其他浏覽器(如Firefox、Safari和Opera)把它實現為一個本地JavaScript對象。由於存在這些差別,Javascript代碼中必須包含有關的邏輯,從而使用ActiveX技術或者使用本地JavaScript對象技術來創建XMLHttpRequest的一個實例。
  
    很多人可能還記得從前的那段日子,那時不同浏覽器上的Javascript和DOM實現簡直千差萬別,聽了上面這段話之後,這些人可能又會不寒而栗。幸運的是,在這裡為了明確該如何創建XMLHttpRequest對象的實例,並不需要那麼詳細地編寫代碼來區別浏覽器類型。你要做的只是檢查浏覽器是否提供對ActiveX對象的支持。如果浏覽器支持ActiveX對象,就可以使用ActiveX來創建XMLHttpRequest對象。否則,就要使用本地Javascript對象技術來創建。代碼清單2-1展示了編寫跨浏覽器的JavaScript代碼來創建XMLHttpRequest對象實例是多麼簡單。
  
    代碼清單2-1 創建XMLHttpRequest對象的一個實例
  
  var XMLHttp;
  
  function createXMLHttpRequest() {
    if (window.ActiveXObject) {
     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
     xmlHttp = new XMLHttpRequest();
    }
  }
  
    可以看到,創建XMLHttpRequest對象相當容易。首先,要創建一個全局作用域變量xmlHttp來保存這個對象的引用。createXMLHttpRequest方法完成創建XMLHttpRequest實例的具體工作。這個方法中只有簡單的分支邏輯(選擇邏輯)來確定如何創建對象。對window.ActiveXObject的調用會返回一個對象,也可能返回null,if語句會把調用返回的結果看作是true或false(如果返回對象則為true,返回null則為false),以此指示浏覽器是否支持ActiveX控件,相應地得知浏覽器是不是Internet Explorer。如果確實是,則通過實例化ActiveXObject的一個新實例來創建XMLHttpRequest對象,並傳入一個串指示要創建何種類型的ActiveX對象。在這個例子中,為構造函數提供的字符串是Microsoft.XMLHTTP,這說明你想創建XMLHttpRequest的一個實例。
  
    如果window.ActiveXObject調用失敗(返回null),Javascript就會轉到else語句分支,確定浏覽器是否把XMLHttpRequest實現為一個本地JavaScript對象。如果存在window.
  
    XMLHttpRequest,就會創建XMLHttpRequest的一個實例。
  
    由於Javascript具有動態類型特性,而且XMLHttpRequest在不同浏覽器上的實現是兼容的,所以可以用同樣的方式訪問XMLHttpRequest實例的屬性和方法,而不論這個實例創建的方法是什麼。這就大大簡化了開發過程,而且在JavaScript中也不必編寫特定於浏覽器的邏輯。 
  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved