關(guān)于Ajax的架構(gòu)介紹及解決方案_第1頁
關(guān)于Ajax的架構(gòu)介紹及解決方案_第2頁
關(guān)于Ajax的架構(gòu)介紹及解決方案_第3頁
關(guān)于Ajax的架構(gòu)介紹及解決方案_第4頁
關(guān)于Ajax的架構(gòu)介紹及解決方案_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

精品文檔-下載后可編輯關(guān)于Ajax的架構(gòu)介紹及解決方案1純Javascript:應(yīng)用程序框架

1.1Bindows(自從2022年)

Bindows應(yīng)用程序不要求和也不需要在用戶端安裝-僅要求有一個瀏覽器(也不需要Java,F(xiàn)lash或者ActiveX)。Bindows是一個軟件開發(fā)包(SDK),它通過強(qiáng)力聯(lián)合DHTML,CSS和XML等技術(shù),能生成高度交互的互聯(lián)網(wǎng)應(yīng)用程序-成為現(xiàn)代的桌面應(yīng)用程序的強(qiáng)有力對手,是未來有可能領(lǐng)導(dǎo)面向?qū)ο箝_發(fā)的AJAX應(yīng)用程序的平臺。

1.2BackBase(自從2022年)

是一個全面的瀏覽器端框架,支持豐富的瀏覽器功能以及與。NET和Java的集成。商業(yè)化,來自于BackbaseB.V(總部在Amsterdam,成立于2022年)。

1.3DOJO(開發(fā)中;自從2022年9月)

提供全面窗口小組件和瀏覽器-服務(wù)器消息支持,為創(chuàng)建定制的窗口小組件提供框架支持。

1.4OpenRico(開發(fā)中;自從2022年5月;基于早期的私有框架)

是一多用途框架,支持Ajax基礎(chǔ)結(jié)構(gòu)和用戶交互。

1.5qooxdoo(開發(fā)中;自從2022年5月)

是另一個雄心勃勃的框架,提供寬范圍的UI支持和正在開發(fā)中的基礎(chǔ)結(jié)構(gòu)特性。

1.6Tibet(開發(fā)中;自從2022年6月)

目的是提供高度可移植的和全面的API,結(jié)果是,可能自動生成大量的客戶端代碼。自稱是“企業(yè)級Ajax”。

2純:基礎(chǔ)結(jié)構(gòu)框架

2.1AjaxCaller(Alpha版本;自從5月2022年)

是一基本的線程安全的XMLHttpRequest包裝器,主要針對Ajax新手,仍處于原始的alpha開發(fā)階段,

2.2Flash集成包

允許和Flash內(nèi)容的集成

2.3GoogleAJAXSLT(發(fā)行于2022年6月)

是一個框架,用來執(zhí)行XSLT轉(zhuǎn)換以及XPath查詢。

2.4HTMLHttpRequest(Beta版;始于2022年)

HtmlHttpRequest它使用了XMLHttpRequest和Iframes以改進(jìn)兼容性。

2.5交互式網(wǎng)站框架(自從2022年5月)

交互式網(wǎng)站框架目的是從瀏覽器端對Ajax基礎(chǔ)結(jié)構(gòu)的多方面予以支持。自描述為“使用javascript,css,xml,和html來創(chuàng)造高度交互網(wǎng)站的框架。包括一個定制的針對高度可讀的javascript的xml分析器。實質(zhì)上,是建立基于AJAX的網(wǎng)站的基礎(chǔ),還有另外一些通用腳本”。

2.6LibXMLHttpRequest(發(fā)行于2022年6月)

libXmlRequest是XMLHttpRequest的一個瘦包裝器。

2.7RSLite(x)

是一個針對XMLHttpRequest的瘦包裝器。

2.8Sack(在開發(fā)中,自從2022年5月)

是一個針對XMLHttpRequest的瘦包裝器。

2.9Sarissa(發(fā)行于2月,2022年)

是一種JavascriptAPI,它封裝了在瀏覽器端可以獨立調(diào)用XML的功能。

2.10XHCONn(發(fā)行于自從4月,2022年)

是一個對XMLHttpRequest的瘦包裝器。

2.11Jquery

簡潔的思想:幾乎所有操作都是以選擇DOM元素(有強(qiáng)大的Selector)開始,然后是對其的操作(Chaining等特性)。

3服務(wù)器端:多種語言

3.1跨平臺異步的接口工具箱(5月2022年)

是一真正的支持PHP和ASP/Vbscript的Ajax實現(xiàn)和JSRS(JavaScript遠(yuǎn)程腳本)實現(xiàn)。CPAINT提供給你需求的代碼在后臺實現(xiàn)AJAX和JSRS,而返回的數(shù)據(jù)以JavaScript形式在前臺操作,格式化和顯示。這允許你創(chuàng)建能提供接近實時的反饋給用戶的web應(yīng)用程序。

3.2SAJAX(可用,但是不是1.0版本;自從3月2022年)

直接把調(diào)用從Javascript發(fā)送到你的服務(wù)器端語言并再次回返。

3.3Javascipt對象標(biāo)志(JSON)和JSON-RPC

是一個“胖的自由的XML選擇”,而JSON-RPC是一種遠(yuǎn)程過程協(xié)議,類似于XML-RPC,強(qiáng)有力支持Javascript客戶。

3.4Javascript遠(yuǎn)程腳本(JSRS)(自從2000年)

直接把調(diào)用從Javascript發(fā)送到你的服務(wù)器端語言并再次回返。

4服務(wù)器端:Java

4.1WebORBforJava(自從2022年8月)

是一個平臺,支持開發(fā)AJAX和基于Flash的胖客戶端應(yīng)用程序,并可以把它們與Java對象和XMLWeb服務(wù)相系起來。在線舉例(http:///examples)

4.2Echo2(自從3月2022年)

允許你用純Java代碼編寫Ajax應(yīng)用軟件

4.3DirectWebRemoting(DWR)(2022年)

是一個框架,用于直接從Javascript代碼中調(diào)用Java方法。

4.4SWATO(2022年)

是一套可重用的和良好集成的Java/JavaScript庫,它實現(xiàn)了一種更容易的方式來改變你的web應(yīng)用程序的交互,它是通過AJAX方式實現(xiàn)。

5服務(wù)器端:Lisp

5.1CL-Ajax

實現(xiàn)Javascript直接調(diào)用服務(wù)器端Lisp函數(shù)。

6服務(wù)器端:。NET

6.1WebORBfor.NET(自從8月2022年)

是一個平臺,用于開發(fā)AJAX和基于Flash的胖客戶端應(yīng)用程序,并能把它們連接到。NET對象和XMLWeb服務(wù)

6.2Ajax.NET(自從3月2022年)

是一個庫,實現(xiàn)從Javascript到服務(wù)器端。NET的存取。

7服務(wù)器端:PHP

7.1AjaxAC(自從2022年4月)

用單個的PHP類封裝了完整的應(yīng)用程序。

7.2JPSpan

直接把Javascript調(diào)用傳遞到PHP函數(shù)。

7.3XAJAX

直接把Javascript調(diào)用傳遞到PHP函數(shù)。

8服務(wù)器端:Ruby

是一個通常的強(qiáng)力支持Ajax的web框架:

開發(fā)Ajax應(yīng)用面臨的問題及解決方案

對程序員而言,開發(fā)Ajax應(yīng)用頭痛的問題莫過于以下幾點:

Ajax在本質(zhì)上是一個瀏覽器端的技術(shù),首先面臨無可避免的個問題即是瀏覽器的兼容性問題。各家瀏覽器對于JavaScript/DOM/CSS的支持總有部分不太相同或是有Bug,甚至同一瀏覽器的各個版本間對于JavaScript/DOM/CSS的支持也有可能部分不一樣。這導(dǎo)致程序員在寫Ajax應(yīng)用時花大部分的時間在調(diào)試瀏覽器的兼容性而非在應(yīng)用程序本身。因此,目前大部分的Ajax鏈接庫或開發(fā)框架大多以js鏈接庫的形式存在,以定義更高階的JavaScriptAPI、JavaScript對象(模板)、或者JavaScriptWidgets來解決此問題。如prototype.js。

Ajax技術(shù)之主要目的在于局部交換客戶端及服務(wù)器之間的數(shù)據(jù)。如同傳統(tǒng)之主從架構(gòu),無可避免的會有部分的業(yè)務(wù)邏輯會實現(xiàn)在客戶端,或部分在客戶端部分在服務(wù)器。由于業(yè)務(wù)邏輯可能分散在客戶端及服務(wù)器,且以不同之程序語言實現(xiàn),這導(dǎo)致Ajax應(yīng)用程序極難維護(hù)。如有用戶接口或業(yè)務(wù)邏輯之更動需求,再加上前一個JavaScript/DOM/CSS之兼容性問題,Ajax應(yīng)用往往變成程序員的夢魘。針對業(yè)務(wù)邏輯分散的問題,Ajax開發(fā)框架大致可分為兩類:

將業(yè)務(wù)邏輯及表現(xiàn)層放在瀏覽器,數(shù)據(jù)層放在服務(wù)器:因為所有的程序以JavaScript執(zhí)行在客戶端,只有需要數(shù)據(jù)時才向服務(wù)器要求服務(wù),此法又稱為胖客戶端(fatclient)架構(gòu)。服務(wù)器在此架構(gòu)下通常僅用于提供及儲存數(shù)據(jù)。此法的好處在于程序員可以充分利用JavaScript搭配業(yè)務(wù)邏輯來做出特殊的用戶接口,以符合終端用戶的要求。但是問題也不少,主因在,JavaScript語言本身之能力可能不足以處理復(fù)雜的業(yè)務(wù)邏輯。第二,JavaScript的執(zhí)行效能一向不好。第三,JavaScript訪問服務(wù)器數(shù)據(jù),仍需適當(dāng)?shù)姆?wù)器端程序之配合。第四,瀏覽器兼容性的問題又出現(xiàn)。有些Ajax開發(fā)框架如DWR企圖以自動生成JavaScript之方式來避免兼容的問題,并開立通道使得JavaScript可以直接調(diào)用服務(wù)器端的Java程序來簡化數(shù)據(jù)的訪問。但是前述及第二兩個問題仍然存在,程序員必須費相當(dāng)?shù)牧獠拍苓_(dá)到應(yīng)用程序之規(guī)格要求,或可能根本無法達(dá)到要求。

將表現(xiàn)層[2]、業(yè)務(wù)邏輯、及數(shù)據(jù)層放在服務(wù)器,瀏覽器僅有用戶接口引擎(UserInterfaceengine);此法又稱為瘦客戶端(thinclient)架構(gòu),或中心服務(wù)器(server-centric)架構(gòu)。瀏覽器的用戶接口引擎僅用于反映服務(wù)器的表現(xiàn)層以及傳達(dá)用戶的輸入回到服務(wù)器的表現(xiàn)層。由瀏覽器所觸發(fā)之事件亦送回服務(wù)器處理,根據(jù)業(yè)務(wù)邏輯來更新表現(xiàn)層,然后反映回瀏覽器。因為所有應(yīng)用程序完全在服務(wù)器執(zhí)行,數(shù)據(jù)及表現(xiàn)層皆可直接訪問,程序員只需使用服務(wù)器端相對較成熟之程序語言(如Java語言)即可,不需再學(xué)習(xí)JavaScript/DOM/CSS,在開發(fā)應(yīng)用程序時相對容易。缺點在于用戶接口引擎以及表現(xiàn)層通常以標(biāo)準(zhǔn)組件的形式存在,如需要特殊組件(用戶接口)時,往往須待原框架之開發(fā)者提供,緩不濟(jì)急。如開源碼Ajax開發(fā)框架ZK目前支持XUL及XHTML組件,尚無XAML之支持。

Ajax是以異步的方式向服務(wù)器提交需求。對服務(wù)器而言,其

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論