音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

關(guān)于A(yíng)jax的架構(gòu)介紹及解決方案

出處:尤新亮 發(fā)布于:2011-08-27 08:08:31

    1純Javascript:應(yīng)用程序框架

    1.1 Bindows(自從2003年)

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

    1.2 BackBase(自從2003年)

    是一個(gè)全面的瀏覽器端框架,支持豐富的瀏覽器功能以及與。NET和Java的集成。商業(yè)化,來(lái)自于Backbase B.V(總部在A(yíng)msterdam,成立于2003年)。

    1.3 DOJO(開(kāi)發(fā)中;自從2004年9月)

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

    1.4 Open Rico(開(kāi)發(fā)中;自從2005年5月;基于早期的私有框架)

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

    1.5 qooxdoo(開(kāi)發(fā)中;自從2005年5月)

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

    1.6 Tibet(開(kāi)發(fā)中;自從2005年6月)

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

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

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

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

    2.2 Flash 集成包

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

    2.3 Google AJAXSLT(發(fā)行于2005年6月)

    是一個(gè)框架,用來(lái)執(zhí)行XSLT轉(zhuǎn)換以及XPath查詢(xún)。

    2.4 HTMLHttpRequest(Beta版;始于2005年)

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

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

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

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

    libXmlRequest是XMLHttpRequest的一個(gè)瘦包裝器。

    2.7 RSLite(x)

    是一個(gè)針對(duì)XMLHttpRequest的瘦包裝器。

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

    是一個(gè)針對(duì)XMLHttpRequest的瘦包裝器。

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

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

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

    是一個(gè)對(duì)XMLHttpRequest的瘦包裝器。

    2.11 Jquery

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

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

    3.1 跨平臺(tái)異步的接口工具箱(5月2005年)

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

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

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

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

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

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

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

    4 服務(wù)器端:Java

    4.1 WebORB for Java(自從2005年8月)

    是一個(gè)平臺(tái),支持開(kāi)發(fā)AJAX和基于Flash的胖客戶(hù)端應(yīng)用程序,并可以把它們與Java對(duì)象和XML Web服務(wù)相系起來(lái)。在線(xiàn)舉例(http://www.themidnightcoders.com/examples)

    4.2 Echo 2(自從3月2005年)

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

    4.3 Direct Web Remoting (DWR)(2005年)

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

    4.4 SWATO(2005年)

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

    5 服務(wù)器端:Lisp

    5.1 CL-Ajax

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

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

    6.1 WebORB for.NET(自從8月2005年)

    是一個(gè)平臺(tái),用于開(kāi)發(fā)AJAX和基于Flash的胖客戶(hù)端應(yīng)用程序,并能把它們連接到。NET對(duì)象和XML Web服務(wù)

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

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

    7 服務(wù)器端:PHP

    7.1 AjaxAC(自從2005年4月)

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

    7.2 JPSpan

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

    7.3 XAJAX

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

    8 服務(wù)器端:Ruby

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

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

    對(duì)程序員而言,開(kāi)發(fā)Ajax應(yīng)用頭痛的問(wèn)題莫過(guò)于以下幾點(diǎn):

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

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

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

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

    Ajax是以異步的方式向服務(wù)器提交需求。對(duì)服務(wù)器而言,其與傳統(tǒng)的提交窗體需求并無(wú)不同,而且由于是以異步之方式提交,如果同時(shí)有多個(gè)Ajax需求及窗體提交需求,將無(wú)法保證哪一個(gè)需求先獲得服務(wù)器的響應(yīng)。這會(huì)造成應(yīng)用程序典型的多進(jìn)程(process)或多線(xiàn)程(thread)的競(jìng)爭(zhēng)(racing)問(wèn)題。程序員因此必須自行處理或在JavaScript里面動(dòng)手腳以避免這類(lèi)競(jìng)爭(zhēng)問(wèn)題的發(fā)生(如Ajax需求未響應(yīng)之前,先disable送出按鈕),這又不必要的增加了程序員的負(fù)擔(dān)。目前已知有自動(dòng)處理此問(wèn)題之開(kāi)發(fā)框架似乎只有ZK。



  

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線(xiàn)人工客服

買(mǎi)家服務(wù):
賣(mài)家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線(xiàn)時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見(jiàn),您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見(jiàn)一經(jīng)采納,將有感恩紅包奉上哦!