1.ajax概述
正確讀音是:e:j^ks,但是大多數人都習慣稱之為:a:j^ks。AJAX即“Asynchronous JavaScript and XML”(非同步JavaScriptXML),AJAX並非縮寫詞,而是由Jesse James Gaiiett創造的名詞,是指一種建立互動式網頁應用的網頁開發技術.允許瀏覽器與伺服器通訊而無須重新整理當前頁面的技術都被叫做Ajax.
“Ajax”這個名字是在2005年2月,AdaptivePath的Jesse James Garrett在他的文章Ajax:ANew Approach to Web Application中創造。而 Ajax 這項技術,是 Google 在Google Labs發布Google Maps和Google Suggest後真正為人所認識。
2. 同步互動和非同步互動
舉個例子:普通B/S模式(同步) 、AJAX技術(非同步)
同步:提交請求->等待伺服器處理->處理完畢返回這個期間用戶端瀏覽器不能幹任何事。
非同步: 請求通過事件觸發->伺服器處理(這時瀏覽器仍然可以作其他事情)->處理完畢
同步是指:發送方發出資料後,等接收方發迴響應以後才發下一個資料包的通訊方式。
非同步是指:發送方發出資料後,不等接收方發迴響應,接著發送下個資料包的通訊方式 。
易懂的理解:
非同步傳輸: 你傳輸吧,我去做我的事了,傳輸完了告訴我一聲;同步傳輸: 你現在傳輸,我要親眼看你傳輸完成,才去做別的事
3. 不用重新整理整個頁面便可與伺服器通訊的辦法:
• Flash
• Java applet
• 架構:如果使用一組架構構造了一個網頁,可以只更新其中一個架構,而不必驚動整個頁面
• 隱藏的iframe
• XMLHttpRequest:該對象是對 JavaScript 的一個擴充,可使網頁與伺服器進行通訊。是建立 Ajax 應用的最佳選擇。實際上通常把 Ajax 當成 XMLHttpRequest 對象的代名詞
4. Ajax的工作原理
l Ajax的核心是JavaScript對象XmlHttpRequest。
該對象在Internet Explorer5中首次引入,它是一種支援非同步請求的技術。簡而言之,XmlHttpRequest使您可以使用JavaScript向伺服器提出請求並處理響應,而不阻塞使用者。
AJAX採用非同步互動過程。AJAX在使用者與伺服器之間引入一個中間媒介,從而消除了網路互動過程中的處理—等待缺點。
使用者的瀏覽器在執行任務時即裝載了AJAX引擎。AJAX引擎用JavaScript語言編寫,通常藏在一個隱藏的架構中。它負責編譯使用者介面及與伺服器之間的互動。AJAX引擎允許使用者與應用軟體之間的互動過程非同步進行,獨立於使用者與網路伺服器間的交流。現在,可以用Javascript調用AJAX引擎來代替產生一個HTTP的使用者動作,記憶體中的資料編輯、頁面導航、資料校正這些不需要重新載入整個頁面的需求可以交給AJAX來執行。
l 使用AJAX,可以為JSP、開發人員、終端使用者帶來可見的便捷。
5.ajax工具包
Ajax並不是一項新技術,它實際上是幾種技術,每種技術各盡其職,以一種全新的方式彙總在一起。
• 伺服器端語言:伺服器需要具備向瀏覽器發送特定資訊的能力。Ajax與伺服器端語言無關。
• XML (eXtensible Markup Language,可延伸標記語言 (XML)) 是一種描述資料的格式。Aajx 程式需要某種格式化的格式來在伺服器和用戶端之間傳遞資訊,XML 是其中的一種選擇
• XHTML(eXtended Hypertext Markup Language,使用擴充超媒體標記語言)和 CSS(Cascading Style Sheet,級聯樣式單)標準化呈現;
• DOM(Document Object Model,文件物件模型)實現動態顯示和互動;
• 使用XMLHTTP組件XMLHttpRequest對象進行非同步資料讀取
• 使用JavaScript綁定和處理所有資料
6. AJAX不是完美的技術。也存在缺陷:
1)AJAX大量使用了Javascript和AJAX引擎,而這個取決於瀏覽器的支援。IE5.0及以上、Mozilla1.0、NetScape7及以上版本才支援,Mozilla雖然也支援AJAX,但是提供XMLHttpRequest的方式不一樣。所以,使用AJAX的程式必須測試針對各個瀏覽器的相容性。
2)AJAX更新頁面內容的時候並沒有重新整理整個頁面,因此,網頁的後退功能是失效的;有的使用者還經常搞不清楚現在的資料是舊的還是已經更新過的。這個就需要在明顯位置提醒使用者“資料已更新”。
3)對流媒體的支援沒有FLASH、Java Applet好。
4)一些手持功能(如手機、PDA等)現在還不能很好的支援Ajax。 7.瀏覽器的同步 1.1說明
1、這是一個非常典型的瀏覽器同步互動圖
2、步驟如下:
1、客戶發出HTTP請求
2、伺服器接受客戶的請求並處理客戶的請求
3、伺服器相應客戶的請求,返回客戶所需要的頁面
3、缺點:
1、每一次客戶提交請求的時候,提交的是整個頁面。也就是說不管這個頁面的資料量大小,都要經過網路的傳輸。這樣給網路造成了資料的壓力。
2、在每次客戶提交請求的時候,因為要提交整個資料,所以就要刷心整個頁面。這樣情況對於使用者的互動性來說是很不好的。因為一提交以後使用者當前的頁面就成了白班,使用者所做的事情只能是等待等待再等待。
3、在每次進行提交請求的時候,使用者有可能讓伺服器處理的資料很少,比如163郵件系統的登陸,伺服器端實際上只需要使用者名稱和密碼就可以了,沒有必要把其他資料也傳輸到伺服器上。但是同步是做不到這點的。
4、特別是在管理系統中,這些系統對客戶介面的友好型要求是比較高的,而同步互動是不滿足這樣的特點的。 8.瀏覽器的非同步互動 2.1說明
1、這是一個非常典型的瀏覽器非同步互動圖
2、從圖上可以看出來,用戶端沒有再發送http請求,而是用JavaScript調用一個叫Ajax engine來發送資料,所以不用提交整個頁面。
3、從返回來看,返回的也不再是客戶需要的頁面,而是客戶需要的資料
4、優點:
1、不用提交整個頁面,而是用JavaScript提交具體的資料,這樣就使一些沒有必要在網路上傳輸的資料不用傳輸了。
2、因為只提交資料,所以每天提交請求的資料庫不是很大,這樣可以減輕網路傳輸資料的壓力。
3、由於不用重新整理整個頁面,所以即便提交以後,展現在客戶面前的頁面還是不會消失的,這樣對於客戶的互動性特別好。