WIKI使用導(dǎo)航
站長百科導(dǎo)航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計算
- 微博營銷
- 虛擬主機管理系統(tǒng)
- 開放平臺
- WIKI程序與應(yīng)用
- 美國十大主機
Php-ajax簡介:修訂間差異
無編輯摘要 ? |
Ahbaybface(討論 | 貢獻) 無編輯摘要 ? |
||
第2行: | 第2行: | ||
<div style="clear:both;"></div> | <div style="clear:both;"></div> | ||
[[AJAX]]全稱為“Asynchronous JavaScript and XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。? <br> | |||
第8行: | 第8行: | ||
Ajax(Asynchronous JavaScript + XML)的定義? <br> | Ajax(Asynchronous JavaScript + XML)的定義? <br> | ||
基于web標準(standards-based presentation)XHTML+CSS的表示;? <br> | 基于web標準(standards-based presentation)XHTML+CSS的表示;? <br> | ||
使用 | 使用 [[DOM]](Document Object Model)進行動態(tài)顯示及交互;? <br> | ||
使用 XML 和 XSLT 進行數(shù)據(jù)交換及相關(guān)操作;? <br> | 使用 XML 和 XSLT 進行數(shù)據(jù)交換及相關(guān)操作;? <br> | ||
使用 XMLHttpRequest 進行異步數(shù)據(jù)查詢、檢索;? <br> | 使用 XMLHttpRequest 進行異步數(shù)據(jù)查詢、檢索;? <br> | ||
使用 JavaScript 將所有的東西綁定在一起。英文參見Ajax的提出者Jesse James Garrett的原文。 <br> | 使用 [[JavaScript]] 將所有的東西綁定在一起。英文參見Ajax的提出者Jesse James Garrett的原文。 <br> | ||
類似于[[DHTML]]或[[LAMP]],AJAX不是指一種單一的技術(shù),而是有機地利用了一系列相關(guān)的技術(shù)。事實上,一些基于AJAX的“派生/合成”式(derivative/composite)的技術(shù)正在出現(xiàn),如“AFLAX”。? <br> | |||
AJAX的應(yīng)用使用支持以上技術(shù)的web瀏覽器作為運行平臺。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式對象,也不支持XSLT。<br> | AJAX的應(yīng)用使用支持以上技術(shù)的web瀏覽器作為運行平臺。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式對象,也不支持XSLT。<br> | ||
第26行: | 第26行: | ||
== 發(fā)展史 == | == 發(fā)展史 == | ||
該技術(shù)在1998年前后得到了應(yīng)用。允許客戶端腳本發(fā)送HTTP請求(XMLHTTP)的第一個組件由Outlook Web Access小組寫成。<br> | 該技術(shù)在1998年前后得到了應(yīng)用。允許客戶端腳本發(fā)送HTTP請求(XMLHTTP)的第一個組件由Outlook Web Access小組寫成。<br> | ||
該組件原屬于微軟Exchange Server,并且迅速地成為了Internet Explorer 4.0[3]的一部分。部分觀察家認為,Outlook Web Access是第一個應(yīng)用了Ajax技術(shù)的成功的商業(yè)應(yīng)用程序,并成為包括Oddpost的網(wǎng)絡(luò)郵件產(chǎn)品在內(nèi)的許多產(chǎn)品的領(lǐng)頭羊。<br> | 該組件原屬于微軟Exchange Server,并且迅速地成為了Internet Explorer 4.0[3]的一部分。部分觀察家認為,Outlook Web Access是第一個應(yīng)用了Ajax技術(shù)的成功的商業(yè)應(yīng)用程序,并成為包括Oddpost的網(wǎng)絡(luò)郵件產(chǎn)品在內(nèi)的許多產(chǎn)品的領(lǐng)頭羊。<br> | ||
第59行: | 第55行: | ||
== Ajax的工作原理 == | == Ajax的工作原理 == | ||
? | Ajax的核心是JavaScript對象XmlHttpRequest。該對象在Internet Explorer 5中首次引入,它是一種支持異步請求的技術(shù)。簡而言之,XmlHttpRequest使您可以使用JavaScript向服務(wù)器提出請求并處理響應(yīng),而不阻塞用戶。<br> | ||
? | |||
? | |||
在創(chuàng)建Web站點時,在客戶端執(zhí)行屏幕更新為用戶提供了很大的靈活性。下面是使用Ajax可以完成的功能:<br> | 在創(chuàng)建Web站點時,在客戶端執(zhí)行屏幕更新為用戶提供了很大的靈活性。下面是使用Ajax可以完成的功能:<br> | ||
第74行: | 第67行: | ||
Ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了—個中間層,使用戶操作與服務(wù)器響應(yīng)異步化。這樣把以前的一些服務(wù)器負擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來處理,減輕服務(wù)器和帶寬的負擔(dān),從而達到節(jié)約ISP的空間及帶寬租用成本的目的。? <br> | Ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了—個中間層,使用戶操作與服務(wù)器響應(yīng)異步化。這樣把以前的一些服務(wù)器負擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來處理,減輕服務(wù)器和帶寬的負擔(dān),從而達到節(jié)約ISP的空間及帶寬租用成本的目的。? <br> | ||
[[category: | ? | ||
[[category:PHP教程]] |
2009年12月10日 (四) 17:05的最新版本
導(dǎo)航: 上一頁 | ASP | PHP | JSP | HTML | CSS | XHTML | aJAX | Ruby | JAVA | XML | Python | ColdFusion
AJAX全稱為“Asynchronous JavaScript and XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。
Ajax(Asynchronous JavaScript + XML)的定義
基于web標準(standards-based presentation)XHTML+CSS的表示;
使用 DOM(Document Object Model)進行動態(tài)顯示及交互;
使用 XML 和 XSLT 進行數(shù)據(jù)交換及相關(guān)操作;
使用 XMLHttpRequest 進行異步數(shù)據(jù)查詢、檢索;
使用 JavaScript 將所有的東西綁定在一起。英文參見Ajax的提出者Jesse James Garrett的原文。
類似于DHTML或LAMP,AJAX不是指一種單一的技術(shù),而是有機地利用了一系列相關(guān)的技術(shù)。事實上,一些基于AJAX的“派生/合成”式(derivative/composite)的技術(shù)正在出現(xiàn),如“AFLAX”。
AJAX的應(yīng)用使用支持以上技術(shù)的web瀏覽器作為運行平臺。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式對象,也不支持XSLT。
傳統(tǒng)的web應(yīng)用允許用戶填寫表單(form),當(dāng)提交表單時就向web服務(wù)器發(fā)送一個請求。服務(wù)器接收并處理傳來的表單,然後返回一個新的網(wǎng)頁。這個做法浪費了許多帶寬,因為在前後兩個頁面中的大部分HTML代碼往往是相同的。由于每次應(yīng)用的交互都需要向服務(wù)器發(fā)送請求,應(yīng)用的響應(yīng)時間就依賴于服務(wù)器的響應(yīng)時間。這導(dǎo)致了用戶界面的響應(yīng)比本地應(yīng)用慢得多。
與此不同,AJAX應(yīng)用可以僅向服務(wù)器發(fā)送并取回必需的數(shù)據(jù),它使用SOAP或其它一些基于XML的web service接口,并在客戶端采用JavaScript處理來自服務(wù)器的響應(yīng)。因為在服務(wù)器和瀏覽器之間交換的數(shù)據(jù)大量減少,結(jié)果我們就能看到響應(yīng)更快的應(yīng)用。同時很多的處理工作可以在發(fā)出請求的客戶端機器上完成,所以Web服務(wù)器的處理時間也減少了。
Ajax應(yīng)用程序的優(yōu)勢在于:
1. 通過異步模式,提升了用戶體驗
2. 優(yōu)化了瀏覽器和服務(wù)器之間的傳輸,減少不必要的數(shù)據(jù)往返,減少了帶寬占用
3. Ajax引擎在客戶端運行,承擔(dān)了一部分本來由服務(wù)器承擔(dān)的工作,從而減少了大用戶量下的服務(wù)器負載。
發(fā)展史[ ]
該技術(shù)在1998年前后得到了應(yīng)用。允許客戶端腳本發(fā)送HTTP請求(XMLHTTP)的第一個組件由Outlook Web Access小組寫成。
該組件原屬于微軟Exchange Server,并且迅速地成為了Internet Explorer 4.0[3]的一部分。部分觀察家認為,Outlook Web Access是第一個應(yīng)用了Ajax技術(shù)的成功的商業(yè)應(yīng)用程序,并成為包括Oddpost的網(wǎng)絡(luò)郵件產(chǎn)品在內(nèi)的許多產(chǎn)品的領(lǐng)頭羊。
但是,2005年初,許多事件使得Ajax被大眾所接受。Google在它著名的交互應(yīng)用程序中使用了異步通訊,如Google討論組、Google地圖、Google搜索建議、Gmail等。Ajax這個詞由《Ajax: A New Approach to Web Applications》一文所創(chuàng),該文的迅速流傳提高了人們使用該項技術(shù)的意識。
另外,對Mozilla/Gecko的支持使得該技術(shù)走向成熟,變得更為易用。
優(yōu)點和缺點[ ]
使用Ajax的最大優(yōu)點,就是能在不更新整個頁面的前提下維護數(shù)據(jù)。這使得Web應(yīng)用程序更為迅捷地回應(yīng)用戶動作,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒有改變過的信息。
Ajax不需要任何瀏覽器插件,但需要用戶允許JavaScript在瀏覽器上執(zhí)行。就像DHTML應(yīng)用程序那樣,Ajax應(yīng)用程序必須在眾多不同的瀏覽器和平臺上經(jīng)過嚴格的測試。隨著Ajax的成熟,一些簡化Ajax使用方法的程序庫也相繼問世。同樣,也出現(xiàn)了另一種輔助程序設(shè)計的技術(shù),為那些不支持JavaScript的用戶提供替代功能。
對應(yīng)用Ajax最主要的批評就是,它可能破壞瀏覽器后退按鈕的正常行為[4]。在動態(tài)更新頁面的情況下,用戶無法回到前一個頁面狀態(tài),這是因為瀏覽器僅能記下歷史記錄中的靜態(tài)頁面。一個被完整讀入的頁面與一個已經(jīng)被動態(tài)修改過的頁面之間的差別非常微妙;用戶通常都希望單擊后退按鈕,就能夠取消他們的前一次操作,但是在Ajax應(yīng)用程序中,卻無法這樣做。不過開發(fā)者已想出了種種辦法來解決這個問題,當(dāng)中大多數(shù)都是在用戶單擊后退按鈕訪問歷史記錄時,通過建立或使用一個隱藏的IFRAME來重現(xiàn)頁面上的變更。(例如,當(dāng)用戶在Google Maps中單擊后退時,它在一個隱藏的IFRAME中進行搜索,然后將搜索結(jié)果反映到Ajax元素上,以便將應(yīng)用程序狀態(tài)恢復(fù)到當(dāng)時的狀態(tài)。)
一個相關(guān)的觀點認為,使用動態(tài)頁面更新使得用戶難于將某個特定的狀態(tài)保存到收藏夾中。該問題的解決方案也已出現(xiàn),大部分都使用URL片斷標識符(通常被稱為錨點,即URL中#后面的部分)來保持跟蹤,允許用戶回到指定的某個應(yīng)用程序狀態(tài)。(許多瀏覽器允許JavaScript動態(tài)更新錨點,這使得Ajax應(yīng)用程序能夠在更新顯示內(nèi)容的同時更新錨點。)這些解決方案也同時解決了許多關(guān)于不支持后退按鈕的爭論。
進行Ajax開發(fā)時,網(wǎng)絡(luò)延遲——即用戶發(fā)出請求到服務(wù)器發(fā)出響應(yīng)之間的間隔——需要慎重考慮。不給予用戶明確的回應(yīng) [5],沒有恰當(dāng)?shù)念A(yù)讀數(shù)據(jù) [6],或者對XMLHttpRequest的不恰當(dāng)處理[7],都會使用戶感到延遲,這是用戶不欲看到的,也是他們無法理解的[8]。通常的解決方案是,使用一個可視化的組件來告訴用戶系統(tǒng)正在進行后臺操作并且正在讀取數(shù)據(jù)和內(nèi)容。
一些手持設(shè)備(如手機、PDA等)現(xiàn)在還不能很好的支持Ajax;
用JavaScript作的Ajax引擎,JavaScript的兼容性和DeBug都是讓人頭痛的事;
Ajax的無刷新重載,由于頁面的變化沒有刷新重載那么明顯,所以容易給用戶帶來困擾――用戶不太清楚現(xiàn)在的數(shù)據(jù)是新的還是已經(jīng)更新過的;現(xiàn)有的解決有:在相關(guān)位置提示、數(shù)據(jù)更新的區(qū)域設(shè)計得比較明顯、數(shù)據(jù)更新后給用戶提示等;
對串流媒體的支持沒有FLASH、Java Applet好;
Ajax的工作原理[ ]
Ajax的核心是JavaScript對象XmlHttpRequest。該對象在Internet Explorer 5中首次引入,它是一種支持異步請求的技術(shù)。簡而言之,XmlHttpRequest使您可以使用JavaScript向服務(wù)器提出請求并處理響應(yīng),而不阻塞用戶。
在創(chuàng)建Web站點時,在客戶端執(zhí)行屏幕更新為用戶提供了很大的靈活性。下面是使用Ajax可以完成的功能:
動態(tài)更新購物車的物品總數(shù),無需用戶單擊Update并等待服務(wù)器重新發(fā)送整個頁面。
提升站點的性能,這是通過減少從服務(wù)器下載的數(shù)據(jù)量而實現(xiàn)的。例如,在某購物車頁面,當(dāng)更新籃子中的一項物品的數(shù)量時,會重新載入整個頁面,這必須下載整個頁面的數(shù)據(jù)。如果使用Ajax計算新的總量,服務(wù)器只會返回新的總量值,因此所需的帶寬僅為原來的百分之一。 消除了每次用戶輸入時的頁面刷新。例如,在Ajax中,如果用戶在分頁列表上單擊Next,則服務(wù)器數(shù)據(jù)只刷新列表而不是整個頁面。
直接編輯表格數(shù)據(jù),而不是要求用戶導(dǎo)航到新的頁面來編輯數(shù)據(jù)。對于Ajax,當(dāng)用戶單擊Edit時,可以將靜態(tài)表格刷新為內(nèi)容可編輯的表格。用戶單擊Done之后,就可以發(fā)出一個Ajax請求來更新服務(wù)器,并刷新表格,使其包含靜態(tài)、只讀的數(shù)據(jù)。
一切皆有可能!但愿它能夠激發(fā)您開始開發(fā)自己的基于Ajax的站點。然而,在開始之前,讓我們介紹一個現(xiàn)有的Web站點,它遵循傳統(tǒng)的提交/等待/重新顯示的范例,我們還將討論Ajax如何提升用戶體驗。
Ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了—個中間層,使用戶操作與服務(wù)器響應(yīng)異步化。這樣把以前的一些服務(wù)器負擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來處理,減輕服務(wù)器和帶寬的負擔(dān),從而達到節(jié)約ISP的空間及帶寬租用成本的目的。