導航:首頁 > 信息技術 > ajax有哪些技術

ajax有哪些技術

發布時間:2022-05-14 17:40:37

㈠ 什麼是ajax技術

術語Ajax用來描述一組技術,它使瀏覽器可以為用戶提供更為自然的瀏覽體驗。在Ajax之前,Web站點強制用戶進入提交/等待/重新顯示範例,用戶的動作總是與伺服器的「思考時間」同步。Ajax提供與伺服器非同步通信的能力,從而使用戶從請求/響應的循環中解脫出來。藉助於Ajax,可以在用戶單擊按鈕時,使用JavaScript和DHTML立即更新UI,並向伺服器發出非同步請求,以執行更新或查詢資料庫。當請求返回時,就可以使用JavaScript和CSS來相應地更新UI,而不是刷新整個頁面。最重要的是,用戶甚至不知道瀏覽器正在與伺服器通信:Web站點看起來是即時響應的。

雖然Ajax所需的基礎架構已經出現了一段時間,但直到最近非同步請求的真正威力才得到利用。能夠擁有一個響應極其靈敏的Web站點確實激動人心,因為它最終允許開發人員和設計人員使用標準的HTML/CSS/JavaScript堆棧創建「桌面風格的(desktop-like)」可用性。

通常,在J2EE中,開發人員過於關注服務和持久性層的開發,以至於用戶界面的可用性已經落後。在一個典型的J2EE開發周期中,常常會聽到這樣的話,「我們沒有可投入UI的時間」或「不能用HTML實現」。但是,以下Web站點證明,這些理由再也站不住腳了:

BackPack
Google Suggest
Google Maps
PalmSphere
所有這些Web站點都告訴我們,Web應用程序不必完全依賴於從伺服器重新載入頁面來向用戶呈現更改。一切似乎就在瞬間發生。簡而言之,在涉及到用戶界面的響應靈敏度時,基準設得更高了。

定義Ajax

Adaptive Path公司的Jesse James Garrett這樣定義Ajax:

Ajax不是一種技術。實際上,它由幾種蓬勃發展的技術以新的強大方式組合而成。Ajax包含:

基於CSS標準的表示;
使用Document Object Model進行動態顯示和交互;
使用XMLHttpRequest與伺服器進行非同步通信;
使用JavaScript綁定一切。
這非常好,但為什麼要以Ajax命名呢?其實術語Ajax是由Jesse James Garrett創造的,他說它是「Asynchronous JavaScript + XML的簡寫」。
Ajax的工作原理

Ajax的核心是JavaScript對象XmlHttpRequest。該對象在Internet Explorer 5中首次引入,它是一種支持非同步請求的技術。簡而言之,XmlHttpRequest使您可以使用JavaScript向伺服器提出請求並處理響應,而不阻塞用戶。

1 AJAX還是AJAH
* AJAX的很多經典應用其實都是利用xmlhttp空間訪問後台程序,後台程序返回腳本用eval回調或者返回簡單數據的方式來開發。這樣的開發模式的好處是設計簡單輕巧,對熟悉dhtml的開發者來說上手會比較塊,跨瀏覽器問題也容易解決,做簡單的應用也夠用。gmail,google suggest都是用這種方式。但是在我看來gmail已經吧AJAH應用到極限了,更復雜的數據結構用簡單數據和回調方式來組織就開始有點力不從心了。

* 前AJAX的一種傳統做法是後台返回完整的xml文件後用腳本(利用控制項)解析xml後操作頁面的dom節點來動態生成頁面的一部分。這樣作的優點是可以充分利用xml的強大表達能力傳輸各種數據結構,缺點是頁面的dom操作效率不高,而且IE在dom操作的API上bug多多。之所以叫「前AJAX」,因為我們在AJAX這個名詞出現前已經這樣做了很多年了。

* AJAX另一種傳統做法是後台返回完整的xml文件後用腳本(利用控制項)解析xml後生成html代碼再灌回頁面的層中。這樣的做法迴避了頁面dom操作的一些問題,在生成的內容比較多的時候利用一些字元串計算的優化技巧(主要是數組和正則的應用)可以相當高效的生成頁面。在我看來這是未來的發展趨勢。

我現在的項目主要採用的是第三種方式,結合第二種。我使用的是自己的一個小巧的框架,模擬jsp的語法來生成html代碼,但是依賴於瀏覽器的xml解析API,因此難以跨瀏覽器。google的開源項目ajaxslt提供了一個純js的xslt解決方式,功能更強大,可以在頁面中局部的應用xslt解析xml生成html或者其他形式的數據,但是帶來了xslt這個技術門檻。sf上的ZK似乎也不錯,但是帶來的是xul這個技術門檻,同時後台被綁定在了J2EE伺服器上面。

2 CACHE
如果使用xmlhttp控制項,在發起http請求的時候IE會包辦cache策略,很多時候更新了數據卻無法獲得更新後的數據。一開始試圖用傳統方式在URL後面加隨機數來強制更新,但是IE仍然距不發出新的請求。
一個解決方法是在後台寫expires: 0或者其他的禁止前台cache的頭,但是這樣在數據沒有更新的時候又會帶來不必要的伺服器壓力、響應延遲和帶寬浪費。
一個稍微好一點的解決方法是,前台在提交數據以後,需要強制更新數據的時候:

xmlhttp.setRequestHeader("If-Modified-Since","0");

3 系統錯誤: -1072896748。
用xmlhttp接收到數據的時候經常是用xmldom.loadXML(xmlhttp.responseXML.xml)來判斷返回的數據的正確性,但是如果後台送過來不正確的xml的時候有時回觸發-1072896748系統錯誤。這是因為xmlhttp.responseXML已經沒有解析到東西了,我們還試圖訪問它的xml屬性而觸發的。
解決的方法是在使用responseXML.xml 或者 responseText的時候要做try/catch:
try{var tmp = xmlhttp.responseXML.xml}catch(ex){err=true;}
有些人喜歡catch的時候判斷 exception.description=="系統錯誤: -1072896748。" , 如果客戶端不是簡體中文版的系統的時候就判斷不到了。其實這個地方只要有異常,都必須走異常處理流程了,不用區分的那麼仔細。

㈡ ajax的優點和缺點,包含了那些技術

(1). 減輕伺服器負擔
(2).減輕伺服器和寬頻的負擔,節省空間和寬頻成本
(3).無刷新就可以更新頁面
(4).可以調用XML等外部數據,進一步促進Web頁面顯示和數據的分離
(5).基於標准化並被廣泛支持的技術,不需要下載插件或小程序
這是書上的定義,現在一般主流的網站都應用了ajax。

㈢ ajax是什麼技術

主要包含了以下幾種技術: Ajax(Asynchronous JavaScript + XML)的定義 基於web標准(standards-based presentation)XHTML+CSS的表示; 使用 DOM(Document Object Model)進行動態顯示及交互; 使用 XML 和 XSLT 進行數據交換及相關操作; 使用 XMLHttpRequest 進行非同步數據查詢、檢索; 使用 JavaScript 將所有的東西綁定在一起。英文參見Ajax的提出者Jesse James Garrett的原文a 類似於DHTML或LAMP,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。事實上,一些基於AJAX的「派生/合成」式(derivative/composite)的技術正在出現,如「AFLAX」。 AJAX的應用使用支持以上技術的web瀏覽器作為運行平台。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。
打字不易,如滿意,望採納。

㈣ 什麼是AJAX,列舉AJAX的常見應用

頁面無刷新技術。比如google的郵箱就是用了AJAX。
舉個例子:你在某個用AJAX技術的網頁上登陸用戶。點「登陸」後發現就登陸那一小塊刷新成你登陸以後的信息了。別的地方沒刷。這就是AJAX

㈤ AJAX是什麼都包含那些技術

主要包含了以下幾種技術: Ajax(Asynchronous JavaScript + XML)的定義 基於web標准(standards-based presentation)XHTML+CSS的表示; 使用 DOM(Document Object Model)進行動態顯示及交互; 使用 XML 和 XSLT 進行數據交換及相關操作; 使用 XMLHttpRequest 進行非同步數據查詢、檢索; 使用 JavaScript 將所有的東西綁定在一起。英文參見Ajax的提出者Jesse James Garrett的原文a 類似於DHTML或LAMP,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。事實上,一些基於AJAX的「派生/合成」式(derivative/composite)的技術正在出現,如「AFLAX」。 AJAX的應用使用支持以上技術的web瀏覽器作為運行平台。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。

㈥ ajax有哪些常用的構成技術

1、XMLHTTPRequest
Ajax的一個最大的特點是無需刷新頁面便可向伺服器傳輸或讀寫數據(又稱無刷新更新頁面),這一特點主要得益於XMLHTTP組件XMLHTTPRequest對象。這樣就可以向再發桌面應用程序只同伺服器進行數據層面的交換,而不用每次都刷新界面也不用每次將數據處理的工作提交給伺服器來做,這樣即減輕了伺服器的負擔又加快了響應速度、縮短了用戶等候時間。
最早應用XMLHTTP的是微軟,IE(IE5以上)通過允許開發人員在Web頁面內部使用XMLHTTP ActiveX組件擴展自身的功能,開發人員可以不用從當前的Web頁面導航而直接傳輸數據到伺服器上或者從伺服器取數據。這個功能是很重要的,因為它幫助減少了無狀態連接的痛苦,它還可以排除下載冗餘HTML的需要,從而提高進程的速度。Mozilla(Mozilla1.0以上及NetScape7以上)做出的回應是創建它自己的繼承XML代理類:XMLHttpRequest類。Konqueror (和Safari v1.2,同樣也是基於KHTML的瀏覽器)也支持XMLHttpRequest對象,而Opera也將在其v7.6x+以後的版本中支持XMLHttpRequest對象。對於大多數情況,XMLHttpRequest對象和XMLHTTP組件很相似,方法和屬性也類似,只是有一小部分屬性不支持。
XMLHttpRequest的應用:
XMLHttpRequest對象在JS中的應用
var xmlhttp = new XMLHttpRequest();
微軟的XMLHTTP組件在JS中的應用
var xmlhttp = new ActiveXObject(Microsoft.XMLHTTP);
var xmlhttp = new ActiveXObject(Msxml2.XMLHTTP);
XMLHttpRequest 對象方法

if (typeof XMLHttpRequest == "undefined") {
XMLHttpRequest = function () {
var msxmls = ["MSXML3", "MSXML2", "Microsoft"]
for (var i=0; i < msxmls.length; i++) {
try {
return new ActiveXObject(msxmls[i]+".XMLHTTP")
} catch (e) { }
}
throw new Error("No XML component installed!")
}
}
function createXMLHttpRequest() {
try {
// Attempt to create it "the Mozilla way"
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
// Guess not - now the IE way
if (window.ActiveXObject) {
return new ActiveXObject(getXMLPrefix() + ".XmlHttp");
}
}
catch (ex) {}
return false;
};

XMLHttpRequest 對象方法
方法 描述
abort() 停止當前請求
getAllResponseHeaders() 作為字元串返問完整的headers
getResponseHeader("headerLabel") 作為字元串返問單個的header標簽
open("method","URL"[,asyncFlag[,"userName"[, "password"]]]) 設置未決的請求的目標 URL, 方法, 和其他參數
send(content) 發送請求
setRequestHeader("label", "value") 設置header並和請求一起發送
XMLHttpRequest 對象屬性
屬性 描述
onreadystatechange 狀態改變的事件觸發器
readyState 對象狀態(integer):
0 = 未初始化
1 = 讀取中
2 = 已讀取
3 = 交互中
4 = 完成
responseText 伺服器進程返回數據的文本版本
responseXML 伺服器進程返回數據的兼容DOM的XML文檔對象
status 伺服器返回的狀態碼, 如:404 = "文件末找到" 、200 ="成功"
statusText 伺服器返回的狀態文本信息
2、JavaScript
JavaScript是一在瀏覽器中大量使用的編程語言,,他以前一直被貶低為一門糟糕的語言(他確實在使用上比較枯燥),以在常被用來作一些用來炫耀的小玩意和惡作劇或是單調瑣碎的表單驗證。但事實是,他是一門真正的編程語言,有著自已的標准並在各種瀏覽器中被廣泛支持。
3、DOM
Document Object Model。
DOM是給 HTML 和 XML 文件使用的一組 API。它提供了文件的結構表述,讓你可以改變其中的內容及可見物。其本質是建立網頁與 Script 或程序語言溝通的橋梁。
所有WEB開發人員可操作及建立文件的屬性、方法及事件都以對象來展現(例如,document 就代表「文件本身「這個對像,table 對象則代表 HTML 的表格對象等等)。這些對象可以由當今大多數的瀏覽器以 Script 來取用。
一個用HTML或XHTML構建的網頁也可以看作是一組結構化的數據,這些數據被封在DOM(Document Object Model)中,DOM提供了網頁中各個對象的讀寫的支持。
4、XML
可擴展的標記語言(Extensible Markup Language)具有一種開放的、可擴展的、可自描述的語言結構,它已經成為網上數據和文檔傳輸的標准。它是用來描述數據結構的一種語言,就正如他的名字一樣。他使對某些結構化數據的定義更加容易,並且可以通過他和其他應用程序交換數據。
5、綜合
Jesse James Garrett提到的Ajax引擎,實際上是一個比較復雜的JavaScript應用程序,用來處理用戶請求,讀寫伺服器和更改DOM內容。
JavaScript的Ajax引擎讀取信息,並且互動地重寫DOM,這使網頁能無縫化重構,也就是在頁面已經下載完畢後改變頁面內容,這是我們一直在通過JavaScript和DOM在廣泛使用的方法,但要使網頁真正動態起來,不僅要內部的互動,還需要從外部獲取數據,在以前,我們是讓用戶來輸入數據並通過DOM來改變網頁內容的,但現在,XMLHTTPRequest,可以讓我們在不重載頁面的情況下讀寫伺服器上的數據,使用戶的輸入達到最少。
基於XML的網路通訊也並不是新事物,實際上FLASH和JAVA Applet都有不錯的表現,現在這種富交互在網頁上也可用了,基於標准化的並被廣泛支持和技術,並且不需要插件或下載小程序。
Ajax是傳統WEB應用程序的一個轉變。以前是伺服器每次生成HTML頁面並返回給客戶端(瀏覽器)。在大多數網站中,很多頁面中至少90%都是一樣的,比如:結構、格式、頁頭、頁尾、廣告等,所不同的只是一小部分的內容,但每次伺服器都會生成所有的頁面再返回給客戶端,這無形之中是一種浪費,不管是對於用戶的時間、帶寬、CPU耗用,還是對於ISP的高價租用的帶寬和空間來說。如果按一頁來算,只能幾K或是幾十K可能並不起眼,但像SINA每天要生成幾百萬個頁面的大ISP來說,可以說是損失巨大的。而AJAX可以所為客戶端和伺服器的中間層,來處理客戶端的請求,並根據需要向伺服器端發送請求,用什麼就取什麼、用多少就取多少,就不會有數據的冗餘和浪費,減少了數據下載總量,而且更新頁面時不用重載全部內容,只更新需要更新的那部分即可,相對於純後台處理並重載的方式縮短了用戶等待時間,也把對資源的浪費降到最低,基於標准化的並被廣泛支持和技術,並且不需要插件或下載小程序,所以Ajax對於用戶和ISP來說是雙盈的。
Ajax使WEB中的界面與應用分離(也可以說是數據與呈現分離),而在以前兩者是沒有清晰的界限的,數據與呈現分離的分離,有利於分工合作、減少非技術人員對頁面的修改造成的WEB應用程序錯誤、提高效率、也更加適用於現在的發布系統。也可以把以前的一些伺服器負擔的工作轉嫁到客戶端,利於客戶端閑置的處理能力來處理。

㈦ Ajax主要包含了哪些技術

使用 DOM(Document Object Model)進行動態顯示及交互; 使用 XML 和 XSLT 進行數據交換及相關操作; 使用 XMLHttpRequest 進行非同步數據查詢、檢索; 使用 JavaScript 將所有的東西綁定在一起。英文參見Ajax的提出者Jesse James Garrett的原文,原文題目(Ajax: A New Approach to Web Applications)。 類似於DHTML或LAMP,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。事實上,一些基於AJAX的「派生/合成」式(derivative/composite)的技術正在出現,如「AFLAX」。 AJAX的應用使用支持以上技術的web瀏覽器作為運行平台。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。

㈧ 什麼是AJAX技術

頁面重載提出了一個在Web應用開發中最大的可用性障礙,對於java開發來說也是一個重大的挑戰。在本系列中,作者Philip McCarthy介紹了通過後台通道的方法來創建動態Web應用的經驗。Ajax(Asynchronous JavaScript and XML)是一個結合了Java技術、XML、以及JavaScript的編程技術,可以讓你構建基於Java技術的Web應用,並打破了使用頁面重載的慣例。

Ajax,非同步JavaScript與XML,是使用客戶端腳本與Web伺服器交換數據的Web應用開發方法。這樣,Web頁面不用打斷交互流程進行重新加裁,就可以動態地更新。使用Ajax,你可以創建接近本地桌面應用的,直接的、高可用的、更豐富的、更動態的Web用戶介面界面。

Ajax不是一個技術,它更像是一個模式—標志並描述有用的設計技巧的一種方法。對於剛了解它的許多開發人員來說,它是一種新的感覺,但是實現Ajax的所有組件都已存在了許多年。當前的熱鬧是因為在2004與2005年出現了一些基於Ajax的非常動態的WebUI,尤其是Google的GMail與Maps應用系統、與照片共享網站Flickr。這些UI充分地使用了後台通道,也被一些開發者稱為「Web 2.0」,並導致了大家對Ajax應用興趣的猛漲。

㈨ AJAX是什麼

AJAX是創建互動式網頁應用的網頁開發技術的一種。

Ajax = 非同步JavaScript和 XML 或者是 HTML(標准通用標記語言的子集)。可以用於創建快速動態網頁的技術。在無需重新載入整個網頁的情況下,能夠更新部分網頁的技術。通過在後台與伺服器進行少量數據交換,Ajax 可以使網頁實現非同步更新。這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。

傳統的網頁(不使用 Ajax)如果需要更新內容,必須重載整個網頁頁面。

(9)ajax有哪些技術擴展閱讀

Ajax 開發與傳統的B/S開發有很大的不同。這些不同引入了新的編程問題,最大的問題在於易用性。由於 Ajax 依賴瀏覽器的 JavaScript 和XML,瀏覽器的兼容性和支持的標准也變得和 JavaScript 的運行時性能一樣重要了。

綜合各種變化的技術和強耦合的客戶服務端環境,Ajax 提出了一種新的開發方式。Ajax 開發人員必須理解傳統的MVC架構,這限制了應用層次之間的邊界。同時,開發人員還需要考慮 B/S 環境的外部和使用 Ajax 技術來重定型 MVC 邊界。

最重要的是,Ajax 開發人員必須禁止以頁面集合的方式來考慮 Web 應用而需要將其認為是單個頁面。一旦 UI 設計與服務架構之間的范圍被嚴格區分開來後,開發人員就需要更新和變化的技術集合了。

㈩ 什麼是AJAX技術

就名字而言,非同步javascript和xml。其實只是一種非同步通信技術。非同步和同步,本來是個系統論概念,對於網頁來說,同步就是就是通信操作會影響整個頁面。非同步的可以一邊通信,一邊響應用戶操作,以及渲染頁面,互不影響。
其實AJAX重點在於通信,XML不是必須的,它僅作為一個HTTP的工具使用。你可以用它從WEB伺服器上獲取一段純文本,或者更容易解析的JSON。。
如果是學校考試,以課本解釋為准。
未來websocket成熟了,AJAX也可能被淘汰。

閱讀全文

與ajax有哪些技術相關的資料

熱點內容
西柳市場是鞍山哪個區 瀏覽:391
業務員教材如何展示產品 瀏覽:603
出售什麼產品最賺錢 瀏覽:313
歡樂拼三張qq怎麼交易金幣 瀏覽:429
電信該打哪個電話發信息 瀏覽:100
隔離技術在哪裡學的 瀏覽:184
什麼是ptb管理程序 瀏覽:732
筆記本驅動程序太慢怎麼解決 瀏覽:763
什麼叫無持倉貴金屬交易 瀏覽:275
波斯市場第一段什麼樂器 瀏覽:150
昆明最大熟食批發市場什麼區 瀏覽:219
眾彩水產交易費多少 瀏覽:298
發票上要有什麼信息 瀏覽:816
交易總量怎麼計算 瀏覽:171
沒有usb口怎麼把程序燒錄進去 瀏覽:759
股票交易員為什麼好找工作 瀏覽:888
夫妻如何開一家專利代理公司 瀏覽:357
如何精準的識別出一位程序員 瀏覽:321
怎麼取消程序設置 瀏覽:90
費縣哪個鄉鎮大集有牛羊市場 瀏覽:446