欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網站管理員

Ajax:Ajax的內部實現機制、原理與實踐

admin
2010年11月25日 22:33 本文熱度 3265
一、Ajax是什么

AJAX全稱為"Asynchronous JavaScript and XML"(異步JavaScript和XML),Ajax不是一個技術,它實際上是幾種技術,每種技術都有其獨特這處,合在一起就成了一個功能強大的新技術。作為創(chuàng)建交互式網頁應用的網頁開發(fā)技術,它有以下特點:

使用XHTML+CSS來表示信息
使用JavaScript操作DOM(Document Object Model)進行動態(tài)顯示及交互
使用XML和XSLT進行數據交換及相關操作
使用XMLHttpRequest對象與Web服務器進行異步數據交換
使用JavaScript將所有的東西綁定在一起
使用SOAP以XML的格式來傳送方法名和方法參數
類似于DHTML或LAMP,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。事實上,一些基于AJAX的"派生/合成"式(derivative/composite)的技術正在出現,如"AFLAX"。

AJAX的應用使用支持以上技術的Web瀏覽器作為運行平臺。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Mac OS的Safari。但是Opera不支持XSL格式對象,也不支持XSLT。(摘自于:http://zh.wikipedia.org/zh-cn/AJAX


 

二、Ajax誕生的背景,為什么使用Ajax

我們都知道,用戶通過瀏覽器產生一個請求后,此請求通過HTTP協(xié)議,向服務器請求所要的資源,如果是一個圖片鏈接,則請求的就是一個圖片資源,如果是一個文件鏈接,則請求的是一個文件資源,多數情況下,請求的是整個網頁,網頁又根據自身的HTML代碼,請求各個具體的資源,比如圖片、音頻等。隨著網站的發(fā)展,用戶量越來越大,服務器的壓力也越來越大,這就暴露出了一個問題,即:大多數用戶在請求資源時,新請求的那個網頁中,與現在的那個網頁有很多相同的地方。但是由于請求的是整個網頁,它會重新從服務器獲取所有的資源(當然,有很多圖片、文件之類的會從客戶端中獲取),這就是大大的浪費。

為了解決這個問題,Ajax就誕生了,它主要的作用就是,通過XMLHttpRequest對象獲取服務器資源,局部刷新用戶正在瀏覽頁面,大大減輕了服務器的壓力,由于只獲取的是需要更新的資源,相對整個頁面的資源來說,瀏覽器也服務器之間的數據交互量也大大減少(大約只有原來的5%),大大加快了頁面的加載速度。

 

三、Ajax發(fā)展史

該技術原屬于微軟的一個研發(fā)小組,為了允許客戶端發(fā)送HTTP請求,研發(fā)出來的,但沒有得到廣泛應用。后經Google廣泛用于它的應用程序進行異步通訊交互,如google討論組、google地圖等,Ajax這個詞由《Ajax: A New Approach to Web Applications》一文所創(chuàng),該文的迅速流傳提高了人們使用該項技術的意識,后來就出現了瘋狂的Ajax革命。

 

四、Ajax實踐

AJAX 的要點是 XMLHttpRequest 對象,所有的實現也是通過XMLHttpRequest對象操作的。但是在瀏覽器大戰(zhàn)的今天,不同的瀏覽器創(chuàng)建 XMLHttpRequest 對象的方法是有差異的。IE 瀏覽器使用 ActiveXObject,而其他的瀏覽器使用名為 XMLHttpRequest 的 JavaScript 內建對象。

 

view source

print?
01 // Mozilla, Safari,Opera 8.0+...

02 function ajaxFunction(){

03     var http_request;

04     if (window.XMLHttpRequest) { 

05         http_request = new XMLHttpRequest();                    

06     } else if (window.ActiveXObject) { 

07     // IE

08         try {

09             http_request = new ActiveXObject("Msxml2.XMLHTTP"); 

10         } catch (e) {

11             try {

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

13             } catch (e) {

14                 alert("您的瀏覽器不支持Ajax");

15                 return false;

16             }

17         }

18           

19         http_request.onreadystatechange = alertContents;

20         http_request.open('GET', url, true);

21         http_request.send(null);

22 }

23   

24 function alertContents() {

25     if (http_request.readyState == 4) {

26         if (http_request.status == 200) {

27             alert(http_request.responseText);

28         } else {

29             alert('There was a problem with the request.');

30         }

31     }

32 }

 

解釋:首先創(chuàng)建一個XMLHttpRequest對象http_request,如果支持window.XMLHttpRequest,則用new XMLHttpRequest() 來創(chuàng)建此對象。這條語句針對 Firefox、Opera 以及 Safari 瀏覽器,如果不支持,則嘗試針對Internet Explorer 6.0+ 的Msxml2.XMLHTTP組件創(chuàng)建XMLHttpRequest,如果也不支持,則嘗試針對 Internet Explorer 5.5+ 的Microsoft.XMLHTTP組件,如果仍然不支持,則說明用戶的瀏覽器版本太低了,提示用戶“您的瀏覽器不支持AJAX”。

XMLHttpRequest對象的onreadystatechange方法用于,狀態(tài)改變時要執(zhí)行的方法,用來處理這個響應。

readyState的狀態(tài)是:

  0 請求未初始化(open() 之前)
  1 請求已提出,正在裝載 (調用 send() 之前)
  2 裝載完畢,請求已發(fā)送(這里通常可以從響應得到內容頭部)
  3 交互中,請求處理中(響應中通常有部分數據可用,但是服務器還沒有完成響應)
  4 請求已完成(可以訪問服務器響應并使用它)
所以當readyState等于4時,就表示一個完整的服務器響應已經收到了,接著,函數會檢查HTTP服務器響應的狀態(tài)值。當HTTP服務器響應的值為200時,表示狀態(tài)正常。這時候才真正執(zhí)行客戶端要執(zhí)行的操作。

讀取從服務器返回過來的數據,有兩種方式:

  1、http_request.responseText:以文本字符串的方式返回服務器的響應
  2、http_request.responseXML:以XMLDocument對象方式返回響應

 

五、Ajax缺陷與不足

1、可能破壞瀏覽器后退按鈕的正常行為;
2、使用動態(tài)頁面更新使得用戶難于將某個特定的狀態(tài)保存到收藏夾中;
3、Ajax的無刷新重載,由于頁面的變化沒有刷新重載那么明顯,所以容易給用戶帶來困擾——用戶不太清楚現在的數據是新的還是已經更新過的;現有的解決有:在相關位置提示、數據更新的區(qū)域設計得比較明顯、數據更新后給用戶提示等;
4、一些手持設備(如手機、PDA等)現在還不能很好的支持Ajax。

 

六、Ajax工具

1、jQuery 開源JS框架,寫得更少,做得更多;
2、ASP.NET AJAX Extension 微軟AJAX工具箱;
3、ExtJS 一個自YUI延伸出來的Ajax框架。

該文章在 2010/11/25 22:33:27 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved