Ajax技術之深入淺出

來源:互聯網
上載者:User

Ajax全稱:(Asynchronous JavaScript + XML)

     基於web標準(standards-based presentation)XHTML+CSS的表示;

主要包含了以下幾種技術:
     使用 DOM(Document Object Model)進行動態顯示及互動;

     使用 XML 和 XSLT 進行資料交換及相關操作;
     使用 XMLHttpRequest 進行非同步資料查詢、檢索;
     使用 JavaScript 將所有的東西綁定在一起。

    類似於DHTML或LAMP,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。

 AJAX的應用使用支援以上技術的web瀏覽器作為運行平台。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支援XSL格式對象,也不支援XSLT。

基礎應用:

  建立XMLHttpRequest 方法如下:

  XMLHttpRequest 類首先由Internet Explorer以ActiveX對象引入,被稱為XMLHTTP。 後來Mozilla﹑Netscape﹑Safari 和其他瀏覽器也提供了XMLHttpRequest類,不過它們建立XMLHttpRequest類的方法不同。

  對於Internet Explorer瀏覽器:

  xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0"); //3.0或4.0, 5.0

  xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP");

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

  由於在不同Internet Explorer瀏覽器中XMLHTTP版本可能不一致,為了更好的相容不同版本的Internet Explorer瀏覽器,因此我們需要根據不同版本的Internet Explorer瀏覽器來建立XMLHttpRequest類,上面代碼就是根據不同的Internet Explorer瀏覽器建立XMLHttpRequest類的方法。

  對於Mozilla﹑Netscape﹑Safari等瀏覽器

  建立XMLHttpRequest 方法如下:xmlhttp_request = new XMLHttpRequest();

  如果伺服器的響應沒有XML mime-type header,某些Mozilla瀏覽器可能無法正常工作。 為瞭解決這個問題,如果伺服器響應的header不是text/xml,可以調用其它方法修改該header。

  xmlhttp_request = new XMLHttpRequest();

  xmlhttp_request.overrideMimeType('text/xml');

  在實際應用中,為了相容多種不同版本的瀏覽器,一般將建立XMLHttpRequest類的方法寫成如下形式:

  try{

  if( window.ActiveXObject ){

  for( var i = 5; i; i-- ){

  try{

  if( i == 2 ){

  xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" ); }

  else{

  xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );

  xmlhttp_request.setRequestHeader("Content-Type","text/xml");

  xmlhttp_request.setRequestHeader("Charset","gb2312"); }

  break;}

  catch(e){

  xmlhttp_request = false; } } }

  else if( window.XMLHttpRequest )

  { xmlhttp_request = new XMLHttpRequest();

  if (xmlhttp_request.overrideMimeType)

  { xmlhttp_request.overrideMimeType('text/xml'); } } }

  catch(e){ xmlhttp_request = false; }

  發送請求了

  可以調用HTTP請求類的open()和send()方法,如下所示:

  xmlhttp_request.open('GET', URL, true);

  xmlhttp_request.send(null);

  open()的第一個參數是HTTP請求方式—GET,POST或任何伺服器所支援的您想調用的方式。 按照HTTP規範,該參數要大寫;否則,某些瀏覽器(如Firefox)可能無法處理請求。

  第二個參數是請求頁面的URL。

  第三個參數佈建要求是否為非同步模式。如果是TRUE,JavaScript函數將繼續執行,而不等待伺服器響應。這就是"AJAX"中的"A"。

處理從伺服器得到的資料:

  有兩種方式可以得到這些資料:

  (1) 以文本字串的方式返回伺服器的響應

  (2) 以XMLDocument對象方式返迴響應

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.