AJAX背景技術(shù)介紹
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
ajax全稱為“asynchronous javascript and xml”(異步j(luò)avascript和xml),是指一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開發(fā)技術(shù)。 [br][br]主要包含了以下幾種技術(shù): [br][br]ajax(asynchronous javascript + xml)的定義 [br][br]基于web標(biāo)準(zhǔn)(standards-based presentation)xhtml+css的表示; [br][br]使用 dom(document object model)進(jìn)行動(dòng)態(tài)顯示及交互; [br][br]使用 xml 和 xslt 進(jìn)行數(shù)據(jù)交換及相關(guān)操作; [br][br]使用 xmlhttprequest 進(jìn)行異步數(shù)據(jù)查詢、檢索; [br][br]使用 javascript 將所有的東西綁定在一起。英文參見ajax的提出者jesse james garrett的原文a [br][br]類似于dhtml或lamp,ajax不是指一種單一的技術(shù),而是有機(jī)地利用了一系列相關(guān)的技術(shù)。事實(shí)上,一些基于ajax的“派生/合成”式(derivative/composite)的技術(shù)正在出現(xiàn),如“aflax”。 [br][br]ajax的應(yīng)用使用支持以上技術(shù)的web瀏覽器作為運(yùn)行平臺(tái)。這些瀏覽器目前包括:mozilla、firefox、internet explorer、opera、konqueror及safari。但是opera不支持xsl格式對(duì)象,也不支持xslt。[br][br]與傳統(tǒng)的web應(yīng)用比較[br][br]傳統(tǒng)的web應(yīng)用允許用戶填寫表單(form),當(dāng)提交表單時(shí)就向web服務(wù)器發(fā)送一個(gè)請(qǐng)求。服務(wù)器接收并處理傳來(lái)的表單,然後返回一個(gè)新的網(wǎng)頁(yè)。這個(gè)做法浪費(fèi)了許多帶寬,因?yàn)樵谇搬醿蓚€(gè)頁(yè)面中的大部分html代碼往往是相同的。由于每次應(yīng)用的交互都需要向服務(wù)器發(fā)送請(qǐng)求,應(yīng)用的響應(yīng)時(shí)間就依賴于服務(wù)器的響應(yīng)時(shí)間。這導(dǎo)致了用戶界面的響應(yīng)比本地應(yīng)用慢得多。 [br][br]與此不同,ajax應(yīng)用可以僅向服務(wù)器發(fā)送并取回必需的數(shù)據(jù),它使用soap或其它一些基于xml的web service接口,并在客戶端采用javascript處理來(lái)自服務(wù)器的響應(yīng)。因?yàn)樵诜?wù)器和瀏覽器之間交換的數(shù)據(jù)大量減少,結(jié)果我們就能看到響應(yīng)更快的應(yīng)用。同時(shí)很多的處理工作可以在發(fā)出請(qǐng)求的客戶端機(jī)器上完成,所以web服務(wù)器的處理時(shí)間也減少了。[br][br]ajax應(yīng)用程序的優(yōu)勢(shì)在于:[br][br]1. 通過(guò)異步模式,提升了用戶體驗(yàn)[br][br]2. 優(yōu)化了瀏覽器和服務(wù)器之間的傳輸,減少不必要的數(shù)據(jù)往返,減少了帶寬占用[br][br]3. ajax引擎在客戶端運(yùn)行,承擔(dān)了一部分本來(lái)由服務(wù)器承擔(dān)的工作,從而減少了大用戶量下的服務(wù)器負(fù)載。[br][br]ajax的工作原理[br][br] ajax的核心是javascript對(duì)象xmlhttprequest。該對(duì)象在internet explorer 5中首次引入,它是一種支持異步請(qǐng)求的技術(shù)。簡(jiǎn)而言之,xmlhttprequest使您可以使用javascript向服務(wù)器提出請(qǐng)求并處理響應(yīng),而不阻塞用戶。[br][br] 在創(chuàng)建web站點(diǎn)時(shí),在客戶端執(zhí)行屏幕更新為用戶提供了很大的靈活性。下面是使用ajax可以完成的功能:[br][br] 動(dòng)態(tài)更新購(gòu)物車的物品總數(shù),無(wú)需用戶單擊update并等待服務(wù)器重新發(fā)送整個(gè)頁(yè)面。 [br][br] 提升站點(diǎn)的性能,這是通過(guò)減少?gòu)姆?wù)器下載的數(shù)據(jù)量而實(shí)現(xiàn)的。例如,在某購(gòu)物車頁(yè)面,當(dāng)更新籃子中的一項(xiàng)物品的數(shù)量時(shí),會(huì)重新載入整個(gè)頁(yè)面,這必須下載整個(gè)頁(yè)面的數(shù)據(jù)。如果使用ajax計(jì)算新的總量,服務(wù)器只會(huì)返回新的總量值,因此所需的帶寬僅為原來(lái)的百分之一。 消除了每次用戶輸入時(shí)的頁(yè)面刷新。例如,在ajax中,如果用戶在分頁(yè)列表上單擊next,則服務(wù)器數(shù)據(jù)只刷新列表而不是整個(gè)頁(yè)面。 [br]直接編輯表格數(shù)據(jù),而不是要求用戶導(dǎo)航到新的頁(yè)面來(lái)編輯數(shù)據(jù)。對(duì)于ajax,當(dāng)用戶單擊edit時(shí),可以將靜態(tài)表格刷新為內(nèi)容可編輯的表格。用戶單擊done之后,就可以發(fā)出一個(gè)ajax請(qǐng)求來(lái)更新服務(wù)器,并刷新表格,使其包含靜態(tài)、只讀的數(shù)據(jù)。[br][br] 一切皆有可能!但愿它能夠激發(fā)您開始開發(fā)自己的基于ajax的站點(diǎn)。然而,在開始之前,讓我們介紹一個(gè)現(xiàn)有的web站點(diǎn),它遵循傳統(tǒng)的提交/等待/重新顯示的范例,我們還將討論ajax如何提升用戶體驗(yàn)。[br][br] ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了—個(gè)中間層,使用戶操作與服務(wù)器響應(yīng)異步化。這樣把以前的一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來(lái)處理,減輕服務(wù)器和帶寬的負(fù)擔(dān),從而達(dá)到節(jié)約isp的空間及帶寬租用成本的目的。
該文章在 2010/5/14 22:43:54 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |