精華:AJAX開發簡略(第二部分)

發表于:2008-01-29來源:作者:點擊數: 標簽:開發
七、AJAX 開發 到這里,已經可以清楚的知道AJAX是什么,AJAX能做什么,AJAX什么地方不好。如果你覺得AJAX真的能給你的開發工作帶來改進的話,那么繼續看看怎么使用AJAX吧。 7.1、AJAX應用到的技術 AJAX涉及到的7項技術中,個人認為Javascript、XMLHttpRequest
七、AJAX開發
  到這里,已經可以清楚的知道AJAX是什么,AJAX能做什么,AJAX什么地方不好。如果你覺得AJAX真的能給你的開發工作帶來改進的話,那么繼續看看怎么使用AJAX吧。

  7.1、AJAX應用到的技術
  AJAX涉及到的7項技術中,個人認為Javascript、XMLHttpRequest、DOM、XML比較有用。

  A、XMLHttpRequest對象
  XMLHttpRequest是XMLHTTP組件的對象,通過這個對象,AJAX可以像桌面應用程序一樣只同服務器進行數據層面的交換,而不用每次都刷新界面,也不用每次將數據處理的工作都交給服務器來做;這樣既減輕了服務器負擔又加快了響應速度、縮短了用戶等待的時間。

  IE5.0開始,開發人員可以在Web頁面內部使用XMLHTTP ActiveX組件擴展自身的功能,不用從當前的Web頁面導航就可以直接傳輸數據到服務器或者從服務器接收數據。,Mozilla1.0以及NetScape7則是創建繼承XML的代理類XMLHttpRequest;對于大多數情況,XMLHttpRequest對象和XMLHTTP組件很相似,方法和屬性類似,只是部分屬性不同。

XMLHttpRequest 對象初始化:
<script language=”javascript”>
var http_request = false;
//IE 瀏覽器
http_request = new ActiveXObject("Msxml2.XMLHTTP");
http_request = new ActiveXObject("Microsoft.XMLHTTP");
//Mozilla 瀏覽器
http_request = new XMLHttpRequest();
</script>


  XMLHttpRequest對象的方法:

  XMLHttpRequest對象的屬性:


 


B、Javascript
  Javascript一直被定位為客戶端的腳本語言,應用最多的地方是表單數據的校驗?,F在,可以通過Javascript操作XMLHttpRequest,來跟數據庫打交道。

C、DOM
  DOM(Document Object Model)是提供給HTML和XML使用的一組API,提供了文件的表述結構,并可以利用它改變其中的內容和可見物。腳本語言通過DOM才可以跟頁面進行交互。Web開發人員可操作及建立文件的屬性、方法以及事件都以對象來展現。比如,document就代表頁面對象本身。

D、XML
  通過XML(Extensible Markup Language),可以規范的定義結構化數據,是網上傳輸的數據和文檔符合統一的標準。用XML表述的數據和文檔,可以很容易的讓所有程序共享。

7.2、AJAX開發框架
  這里,我們通過一步步的解析,來形成一個發送和接收XMLHttpRequest請求的程序框架。AJAX實質上也是遵循Request/Server模式,所以這個框架基本的流程也是:對象初始化à發送請求à服務器接收à服務器返回à客戶端接收à修改客戶端頁面內容。只不過這個過程是異步的。

A、初始化對象并發出XMLHttpRequest請求
  為了讓Javascript可以向服務器發送HTTP請求,必須使用XMLHttpRequest對象。使用之前,要先將XMLHttpRequest對象實例化。之前說過,各個瀏覽器對這個實例化過程實現不同。IE以ActiveX控件的形式提供,而Mozilla等瀏覽器則直接以XMLHttpRequest類的形式提供。為了讓編寫的程序能夠跨瀏覽器運行,要這樣寫:

if (window.XMLHttpRequest) { // Mozilla, Safari, ...

http_request = new XMLHttpRequest();

}

else if (window.ActiveXObject) { // IE

http_request = new ActiveXObject("Microsoft.XMLHTTP");

}

  有些版本的Mozilla瀏覽器處理服務器返回的未包含XML mime-type頭部信息的內容時會出錯。因此,要確保返回的內容包含text/xml信息。

http_request = new XMLHttpRequest();

http_request.overrideMimeType('text/xml');

B、指定響應處理函數
  接下來要指定當服務器返回信息時客戶端的處理方式。只要將相應的處理函數名稱賦給XMLHttpRequest對象的onreadystatechange屬性就可以了。比如:

http_request.onreadystatechange = processRequest;

  需要指出的時,這個函數名稱不加括號,不指定參數。也可以用Javascript即時定義函數的方式定義響應函數。比如:

http_request.onreadystatechange = function() { };

C、發出HTTP請求

  指定響應處理函數之后,就可以向服務器發出HTTP請求了。這一步調用XMLHttpRequest對象的open和send方法。

http_request.open('GET', 'http://www.example.org/some.file', true);

http_request.send(null);

  open的第一個參數是HTTP請求的方法,為Get、Post或者Head。

  open的第二個參數是目標URL?;?STRONG>安全考慮,這個URL只能是同網域的,否則會提示“沒有權限”的錯誤。這個URL可以是任何的URL,包括需要服務器解釋執行的頁面,不僅僅是靜態頁面。目標URL處理請求XMLHttpRequest請求則跟處理普通的HTTP請求一樣,比如JSP可以用request.getParameter(“”)或者request.getAttribute(“”)來取得URL參數值。

 

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97