公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

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

Ajax:Ajax的內(nèi)部實(shí)現(xiàn)機(jī)制、原理與實(shí)踐

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

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

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

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


 

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

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

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

 

三、Ajax發(fā)展史

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

 

四、Ajax實(shí)踐

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

 

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)建一個(gè)XMLHttpRequest對(duì)象http_request,如果支持window.XMLHttpRequest,則用new XMLHttpRequest() 來(lái)創(chuàng)建此對(duì)象。這條語(yǔ)句針對(duì) Firefox、Opera 以及 Safari 瀏覽器,如果不支持,則嘗試針對(duì)Internet Explorer 6.0+ 的Msxml2.XMLHTTP組件創(chuàng)建XMLHttpRequest,如果也不支持,則嘗試針對(duì) Internet Explorer 5.5+ 的Microsoft.XMLHTTP組件,如果仍然不支持,則說(shuō)明用戶的瀏覽器版本太低了,提示用戶“您的瀏覽器不支持AJAX”。

XMLHttpRequest對(duì)象的onreadystatechange方法用于,狀態(tài)改變時(shí)要執(zhí)行的方法,用來(lái)處理這個(gè)響應(yīng)。

readyState的狀態(tài)是:

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

讀取從服務(wù)器返回過(guò)來(lái)的數(shù)據(jù),有兩種方式:

  1、http_request.responseText:以文本字符串的方式返回服務(wù)器的響應(yīng)
  2、http_request.responseXML:以XMLDocument對(duì)象方式返回響應(yīng)

 

五、Ajax缺陷與不足

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

 

六、Ajax工具

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

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

主站蜘蛛池模板: 东京热中文字幕a专区 | 成年在线观| 国产福利酱在线观看萌白酱jk | 国产不卡三级在线播放 | 国产制服丝袜av | 91亚洲视频在线观看 | 成人国产三级在线播放 | 18禁白丝喷水视频w 18禁白丝喷水视频www | av免费无码不卡一区二区 | 丰满风流护士长bda片 | 国产极品尤物va在线精品 | 国产精品亚洲专区无码不卡 | 精品无码午夜福利免费看 | 国产午夜精品一二区理论影院 | 国产一区丝 | 国产一区二区在线日韩 | 国产在线观看黄色 | 东京热一频道一区二区三区 | 韩国免费a级作爱片在线观看 | 国产激情视频白浆免费 | 国产一区二区三区视频 | 国产野外无码理论片 | av无码av天天av天天爽 | 成人区人妻精品一区二区三区 | 91久久九九精品国产综合 | 精品人妻午夜一区二区三区 | 99久久夜色精品国产亚洲96 | av无码专区少妇无码专区 | 国产国语精彩对白在线观看 | 国产精品国语对白露脸在线播放 | 精品国产免费一区二区 | 苍井空一区二区三区av高清 | 91大神大战高跟丝袜 | 97人妻起碰免费 | 2025年精品国产福利在线 | 国产在线一区二区三区av | 国产成人手机在线视频在线观看 | 精品人妻一区二区三区蜜桃 | 国产精品成人久久久久 | 国产粉嫩小泬在线观看泬 | 国产无套无码aⅴ在线观看 国产无套在线播放 |