<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    iNeo

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      30 Posts :: 8 Stories :: 2 Comments :: 0 Trackbacks

    摘要:

    雖然大部分開(kāi)發(fā)人員在過(guò)去使用過(guò)XMLHttp或者使用Iframe來(lái)加載數(shù)據(jù),但僅到現(xiàn)在我們才看到傳統(tǒng)的開(kāi)發(fā)人員和公司開(kāi)始采用這些技術(shù)。就像新的編程語(yǔ)言或模型伴隨著更多的痛苦,開(kāi)發(fā)人員需要學(xué)習(xí)新的技巧及如何最好利用這些新技術(shù)。這篇文章講述了開(kāi)發(fā)人員使用AJAX需要使用的工具和技術(shù)。

    文章工具

    作者:Andrew Thompson;xMatrix (他的blog:http://blog.matrix.org.cn/page/xMatrix)
    原文地址:http://www.javaworld.com/javaworld/jw-10-2005/jw-1017-ajax.html
    中文地址:http://www.matrix.org.cn/resource/article/44/44116_AJAX.html
    關(guān)鍵詞: AJAX

    AJAX開(kāi)發(fā)者的最新工具和技術(shù)

    基于XML的異步JavaScript,簡(jiǎn)稱(chēng)AJAX,是當(dāng)前Web創(chuàng)新(稱(chēng)為Web2.0)中的一個(gè)王冠。感謝組成AJAX的各種技術(shù),Web應(yīng)用的交互如Flickr, Backpack和Google在這方面已經(jīng)有質(zhì)的飛躍。這個(gè)術(shù)語(yǔ)源自描述從基于網(wǎng)頁(yè)的Web應(yīng)用到基于數(shù)據(jù)的應(yīng)用的轉(zhuǎn)換。在基于數(shù)據(jù)的應(yīng)用中,用戶(hù)需求的數(shù)據(jù)如聯(lián)系人列表,可以從獨(dú)立于實(shí)際網(wǎng)頁(yè)的服務(wù)端取得并且可以被動(dòng)態(tài)地寫(xiě)入網(wǎng)頁(yè)中,給緩慢的Web應(yīng)用體驗(yàn)著色使之像桌面應(yīng)用一樣。

    雖然大部分開(kāi)發(fā)人員在過(guò)去使用過(guò)XMLHttp或者使用Iframe來(lái)加載數(shù)據(jù),但僅到現(xiàn)在我們才看到傳統(tǒng)的開(kāi)發(fā)人員和公司開(kāi)始采用這些技術(shù)。就像新的編程語(yǔ)言或模型伴隨著更多的痛苦,開(kāi)發(fā)人員需要學(xué)習(xí)新的技巧及如何最好利用這些新技術(shù)。這篇文章講述了開(kāi)發(fā)人員使用AJAX枰褂玫墓ぞ吆圖際酢?lt;br />
    AJAX模式
    許多重要的技術(shù)和AJAX開(kāi)發(fā)模式可以從現(xiàn)有的知識(shí)中獲取。例如,在一個(gè)發(fā)送請(qǐng)求到服務(wù)端的應(yīng)用中,必須包含請(qǐng)求順序、優(yōu)先級(jí)、超時(shí)響應(yīng)、錯(cuò)誤處理及回調(diào),其中許多元素已經(jīng)在Web服務(wù)中包含了,就像現(xiàn)在的SOA。AJAX開(kāi)發(fā)人員擁有一個(gè)完整的系統(tǒng)架構(gòu)知識(shí)。同時(shí),隨著技術(shù)的成熟還會(huì)有許多地方需要改進(jìn),特別是UI部分的易用性。

    AJAX開(kāi)發(fā)與傳統(tǒng)的CS開(kāi)發(fā)有很大的不同。這些不同引入了新的編程問(wèn)題,最大的問(wèn)題在于易用性。由于AJAX依賴(lài)瀏覽器的JavaScript和XML,瀏覽器的兼容性和支持的標(biāo)準(zhǔn)也變得和JavaScript的運(yùn)行時(shí)性能一樣重要了。這些問(wèn)題中的大部分來(lái)源于瀏覽器、服務(wù)器和技術(shù)的組合,因此必須理解如何才能最好的使用這些技術(shù)。

    綜合各種變化的技術(shù)和強(qiáng)耦合的客戶(hù)服務(wù)端環(huán)境,AJAX提出了一種新的開(kāi)發(fā)方式。AJAX開(kāi)發(fā)人員必須理解傳統(tǒng)的MVC架構(gòu),這限制了應(yīng)用層次之間的邊界。同時(shí),開(kāi)發(fā)人員還需要考慮CS環(huán)境的外部和使用AJAX技術(shù)來(lái)重定型MVC邊界。最重要的是,AJAX開(kāi)發(fā)人員必須禁止以頁(yè)面集合的方式來(lái)考慮Web應(yīng)用而需要將其認(rèn)為是單個(gè)頁(yè)面。一旦UI設(shè)計(jì)與服務(wù)架構(gòu)之間的范圍被嚴(yán)格區(qū)分開(kāi)來(lái)后,開(kāi)發(fā)人員就需要更新和變化的技術(shù)集合了。


    時(shí)刻想著用戶(hù)
    AJAX的最大機(jī)遇在于用戶(hù)體驗(yàn)。在使應(yīng)用更快響應(yīng)和創(chuàng)新的過(guò)程中,定義Web應(yīng)用的規(guī)則正在被重寫(xiě);因此開(kāi)發(fā)人員必須更注重用戶(hù)。現(xiàn)在用戶(hù)已經(jīng)逐漸習(xí)慣如何使用Web應(yīng)用了。例如用戶(hù)通常希望每一次按鈕點(diǎn)擊會(huì)導(dǎo)致幾秒的延遲和屏幕刷新,但AJAX正在打破這種長(zhǎng)時(shí)間的狀況。因此用戶(hù)需要重新體驗(yàn)按鈕點(diǎn)擊的響應(yīng)了。

    可用性是AJAX另人激動(dòng)的地方而且已經(jīng)產(chǎn)生了幾種新穎的技術(shù)。其中最引人注目的是一種稱(chēng)為“黃色隱出”的技術(shù),他在數(shù)據(jù)更新之前時(shí)將用戶(hù)界面變?yōu)辄S色,更新完成后立刻恢復(fù)原來(lái)的顏色。AJAX開(kāi)發(fā)人員將用戶(hù)從Web應(yīng)用的負(fù)載中解放出來(lái);小心地利用AJAX提供的豐富接口,不久桌面開(kāi)發(fā)人員會(huì)發(fā)現(xiàn)AJAX是他們的方向。


    幾種工具和技術(shù)
    隨著AJAX迅速地引人注目起來(lái),我想開(kāi)發(fā)人員對(duì)這種技術(shù)的期待也迅速地增加。就像任何新技術(shù),AJAX的興旺也需要一整個(gè)開(kāi)發(fā)工具/編程語(yǔ)言及相關(guān)技術(shù)系統(tǒng)來(lái)支撐。

    JavaScript
    如名字所示AJAX的概念中最重要而最被忽視的是他也是一種JavaScript編程語(yǔ)言。JavaScript是一種粘合劑使AJAX應(yīng)用的各部分集成在一起。在大部分時(shí)間,JavaScript通常被服務(wù)端開(kāi)發(fā)人員認(rèn)為是一種企業(yè)級(jí)應(yīng)用不需要使用的東西應(yīng)該盡力避免。這種觀點(diǎn)來(lái)來(lái)自以前編寫(xiě)JavaScript代碼的經(jīng)歷:繁雜而又易出錯(cuò)的語(yǔ)言。類(lèi)似的,他也被認(rèn)為將應(yīng)用邏輯任意地散布在服務(wù)端和客戶(hù)端中,這使得問(wèn)題很難被發(fā)現(xiàn)而且代碼很難重用。在AJAX中JavaScript主要被用來(lái)傳遞用戶(hù)界面上的數(shù)據(jù)到服務(wù)端并返回結(jié)果。XMLHttpRequest對(duì)象用來(lái)響應(yīng)通過(guò)HTTP傳遞的數(shù)據(jù),一旦數(shù)據(jù)返回到客戶(hù)端就可以立刻使用DOM將數(shù)據(jù)放到網(wǎng)面上。

    XMLHttpRequest
    XMLHttpRequest對(duì)象在大部分瀏覽器上已經(jīng)實(shí)現(xiàn)而且擁有一個(gè)簡(jiǎn)單的接口允許數(shù)據(jù)從客戶(hù)端傳遞到服務(wù)端,但并不會(huì)打斷用戶(hù)當(dāng)前的操作。使用XMLHttpRequest傳送的數(shù)據(jù)可以是任何格式,雖然從名字上建議是XML格式的數(shù)據(jù)。

    開(kāi)發(fā)人員應(yīng)該已經(jīng)熟悉了許多其他XML相關(guān)的技術(shù)。XPath可以訪問(wèn)XML文檔中的數(shù)據(jù),但理解XML DOM是必須的。類(lèi)似的,XSLT是最簡(jiǎn)單而快速的從XML數(shù)據(jù)生成HTML或XML的方式。許多開(kāi)發(fā)人員已經(jīng)熟悉Xpath和XSLT,因此AJAX選擇XML作為數(shù)據(jù)交換格式有意義的。XSLT可以被用在客戶(hù)端和服務(wù)端,他能夠減少大量的用JavaScript編寫(xiě)的應(yīng)用邏輯。

    CSS
    為了正確的瀏覽AJAX應(yīng)用,CSS是一種AJAX開(kāi)發(fā)人員所需要的重要武器。CSS提供了從內(nèi)容中分離應(yīng)用樣式和設(shè)計(jì)的機(jī)制。雖然CSS在AJAX應(yīng)用中扮演至關(guān)重要的角色,但他也是構(gòu)建創(chuàng)建跨瀏覽器應(yīng)用的一大阻礙,因?yàn)椴煌臑g覽器廠商支持各種不同的CSS級(jí)別。

    服務(wù)器端
    但不像在客戶(hù)端,在服務(wù)端AJAX應(yīng)用還是使用建立在如Java,.Net和PHP語(yǔ)言基礎(chǔ)上機(jī)制;并沒(méi)有改變這個(gè)領(lǐng)域中的主要方式。
    既然如此,我們對(duì)Ruby on Rails框架的興趣也就迅速增加了。在一年多前,Ruby on Rails已經(jīng)吸引了大量開(kāi)發(fā)人員基于其強(qiáng)大功能來(lái)構(gòu)建Web和AJAX應(yīng)用。雖然目前還有很多快速應(yīng)用開(kāi)發(fā)工具存在,Ruby on Rails看起來(lái)已經(jīng)儲(chǔ)備了簡(jiǎn)化構(gòu)建AJAX應(yīng)用的能力。

    開(kāi)發(fā)工具
    在實(shí)際構(gòu)建AJAX應(yīng)用中,你需要的不只是文本編輯器。既然是JavaScript非編譯的,他可以容易地編寫(xiě)和運(yùn)行在瀏覽器中;然而,許多工具提供了有用的擴(kuò)展如語(yǔ)法高亮和智能完成。

    不同的IDE提供了對(duì)JavaScript支持的不同等級(jí)。來(lái)自JetBrains的IntelliJ IDEA是一個(gè)用來(lái)JavaScript開(kāi)發(fā)的更好的IDE,雖然許多開(kāi)發(fā)人員也喜歡Microsoft’s Visual Studio產(chǎn)品(允諾會(huì)在最新的版本中改善對(duì)AJAX的支持)。Eclipse包含了兩個(gè)免費(fèi)的JavaScript編輯器插件和一個(gè)商業(yè)的來(lái)自ActiveStat的Komodo IDE。

    另一個(gè)JavaScript和AJAX開(kāi)發(fā)中的問(wèn)題是調(diào)試?yán)щy。不同的瀏覽器提供不同的通常是隱藏的運(yùn)行時(shí)錯(cuò)誤信息,而JavaScript的缺陷如雙重變量賦值(通常是由于缺少數(shù)據(jù)類(lèi)型)使得調(diào)試更加困難。在AJAX的開(kāi)發(fā)中,調(diào)試就更復(fù)雜了,因?yàn)槠湫枰獦?biāo)識(shí)究竟是客戶(hù)端還是服務(wù)端產(chǎn)生的錯(cuò)誤。在過(guò)去,JavaScript調(diào)試的方法是刪除所有代碼然后一行行的增加直到錯(cuò)誤出現(xiàn)。現(xiàn)在,更多開(kāi)發(fā)人員回到為IE準(zhǔn)備的Microsoft Script Debugger和為Mozilla瀏覽器準(zhǔn)備的Venkman。


    瀏覽器兼容性
    JavaScript編程的最大問(wèn)題來(lái)自不同的瀏覽器對(duì)各種技術(shù)和標(biāo)準(zhǔn)的支持。構(gòu)建一個(gè)運(yùn)行在不同瀏覽器(如IE和火狐)是一個(gè)困難的任務(wù)。因此幾種AJAX JavaScript框架或者生成基于服務(wù)端邏輯或標(biāo)記庫(kù)的JavaScript,或者提供符合跨瀏覽器AJAX開(kāi)發(fā)的客戶(hù)端JavaScript庫(kù)。一些流行的框架包括:AJAX.Net, Backbase, Bitkraft, Django, DOJO, DWR, MochiKit, Prototype, Rico, Sajax, Sarissa, and Script.aculo.us.

    這些框架給開(kāi)發(fā)人員更多的空間使得他們不需要擔(dān)心跨瀏覽器的問(wèn)題。雖然這些框架提升了開(kāi)發(fā)人員構(gòu)建應(yīng)用的能力,但由于廠商已經(jīng)開(kāi)發(fā)了更細(xì)節(jié)的用戶(hù)界面的打包組件解決方案,因此在AJAX組件市場(chǎng)中需要考慮一些其他因素。例如提供通用用戶(hù)界面的組件如組合框和數(shù)據(jù)柵格的幾個(gè)廠商,都可以被用來(lái)在應(yīng)用中創(chuàng)建良好的通過(guò)類(lèi)似電子數(shù)據(jù)表方式來(lái)查看和編輯數(shù)據(jù)的體驗(yàn)。但這些組件不僅是封裝了組件的用戶(hù)界面而且包括與服務(wù)端數(shù)據(jù)的通訊方式,這些組件通常使用基于標(biāo)記方式來(lái)實(shí)現(xiàn)如ASP.Net或JSF控件。


    展望
    最近IE和火狐之間的瀏覽器之爭(zhēng)變得火熱起來(lái),因此AJAX開(kāi)發(fā)人員需要足夠敏捷的作出反應(yīng)。關(guān)鍵點(diǎn)在一些問(wèn)題如CSS或XML,雖然各種瀏覽器形成采用最新標(biāo)準(zhǔn)的不同陣營(yíng)(如Mozilla擁抱SVG和E4X標(biāo)準(zhǔn)及在最新火狐BETA版本中使用XUL,而微軟使用自己的XAML技術(shù))。所有這些技術(shù)代表當(dāng)前AJAX主流JavaScript和XML的市場(chǎng)方向改變。
    總的來(lái)說(shuō),AJAX開(kāi)發(fā)人員必須盡快地跟進(jìn)最新的技術(shù)并利用高產(chǎn)的工具集。成功的AJAX開(kāi)發(fā)人員還需要留心他們的使用者以避免將任何問(wèn)題擴(kuò)大化。并且AJAX開(kāi)發(fā)人員還需要持續(xù)地創(chuàng)新來(lái)創(chuàng)建增強(qiáng)Web應(yīng)用易用性的新方法。


    作者
    Dave Johnson是加拿大Vancouver一家軟件咨詢(xún)公司eBusiness Applications創(chuàng)始人和傳道者,擁有七年以上的XML相關(guān)工作經(jīng)驗(yàn)。


    Resources
    ? AJAX開(kāi)發(fā)人員的編譯模式:http://www.ajaxpatterns.org
    ?  XMLHttpRequest教程:“動(dòng)態(tài)網(wǎng)頁(yè)接口”:http://www.xml.com/pub/a/2005/02/09/xml-http-request.html
    ? JavaScript性能基準(zhǔn):http://blogs.ebusiness-apps.com/dave/?p=14
    ? AJAX資源:http://www.ajaxmatters.com
    ? JavaScript規(guī)范:http://www.ecma-international.org/publications/standards/Ecma-262.htm
    ? 介紹JavaScript對(duì)象標(biāo)識(shí):http://www.crockford.com/JSON/index.html
    ?  Mozilla 的Venkman JavaScript調(diào)試器:http://www.mozilla.org/projects/venkman/
    ?  XML DOM參考:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/
    xmlsdk/html/e9da2722-7879-4e48-869c-7f16714e2824.asp
    ? Microsoft Dynamic HTML reference: http://msdn.microsoft.com/library/default.asp?url=/
    workshop/author/dhtml/reference/dhtml_reference_entry.asp
    ? Gecko DOM Reference: http://www.mozilla.org/docs/dom/domref/
    ? "“移植IE應(yīng)用到Mozilla”
    http://www-128.ibm.com/developerworks/web/library/wa-ie2mozgd/
    ? Mozilla XUL reference:
    http://www.xulplanet.com/
    ? Microsoft XAML reference:
    http://windowssdk.msdn.microsoft.com/library/default.asp?url=/library/
    en-us/wcp_conceptual/html/0ff5f36e-dd84-44d1-aa3e-5bb4f147b169.asp?frame=true
    ? James Jesses Garret introduced the term AJAX in his article "AJAX: A New Approach to Web Applications," (Adaptive Path, February 2005): “AJAX:新的網(wǎng)頁(yè)應(yīng)用開(kāi)發(fā)方式”
    http://www.adaptivepath.com/publications/essays/archives/000385.php
    ? JetBrains IntelliJ IDEA:
    http://www.jetbrains.com/
    ? Microsoft Visual Studio:
    http://msdn.microsoft.com/vstudio/
    ? JSEditor:
    http://jseditor.sourceforge.net/
    ? JSEclipse:
    http://www.interaktonline.com/Products/Eclipse/JSEclipse/Overview/
    ? ActiveState Komodo:
    http://www.activestate.com/Products/Komodo/
    ? XHTML:
    http://www.w3.org/TR/xhtml1/
    ? Document Object Model:
    http://www.w3.org/DOM/
    ? Cascading Style Sheets:
    http://www.w3.org/Style/CSS/
    ? Extensible Stylesheet Language:
    http://www.w3.org/Style/XSL/
    ? XForms:
    http://www.w3.org/MarkUp/Forms/
    ? Scaling Vector Graphics:
    http://www.w3.org/Graphics/SVG/
    ? XPath:
    http://www.w3.org/TR/xpath
    ? AJAX.Net:
    http://ajax.schwarz-interactive.de/csharpsample/default.aspx
    ? Backbase:
    http://www.backbase.com
    ? Bitkraft:
    http://www.tiggrbitz.com/
    ? Django:
    http://www.djangoproject.com/
    ? Dojo:
    http://www.dojotoolkit.org/
    ? DWR (Direct Web Reporting):
    http://getahead.ltd.uk/dwr/
    ? MochiKit:
    http://mochikit.com/
    ? Prototype:
    http://prototype.conio.net/
    ? Rico:
    http://openrico.org/rico/home.page
    ? Sajax:
    http://www.modernmethod.com/sajax/
    ? Sarissa:
    http://sarissa.sourceforge.net/doc/
    ? Script.aculo.us:
    http://script.aculo.us/
    ? Ruby on Rails:
    http://www.rubyonrails.org/
    ? For more on AJAX and DWR, read "AJAX Made Simple with DWR," Cloves Carneiro Jr. (JavaWorld, June 2005): 關(guān)于AJAX和DWR,請(qǐng)閱讀“AJAX使用DWR更簡(jiǎn)單”
    http://www.javaworld.com/javaworld/jw-06-2005/jw-0620-dwr.html
    ? For more articles on Java development tools, browse the Development Tools section of JavaWorld’s Topical Index: 更多Java開(kāi)發(fā)工具的文章,請(qǐng)瀏覽JavaWorld的開(kāi)發(fā)工具部分索引頁(yè)
    http://www.javaworld.com/channel_content/jw-tools-index.shtml
    ? For more articles on XML, browse the Java and XML section of JavaWorld’s Topical Index: 更多XML的文章,請(qǐng)瀏覽JavaWorld的Java和XML部分索引頁(yè)
    http://www.javaworld.com/channel_content/jw-xml-index.shtml
    ? For more articles on UI design, browse the User Interface Design section of JavaWorld’s Topical Index: 更多UI設(shè)計(jì)的文章,請(qǐng)瀏覽JavaWorld的UI設(shè)計(jì)部分索引頁(yè)
    http://www.javaworld.com/channel_content/jw-ui-index.shtml


    原文地址:
    posted on 2006-01-04 10:53 只牽這只狗 閱讀(209) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Ajax
    主站蜘蛛池模板: 99精品视频在线观看免费专区| 手机在线毛片免费播放| 亚洲最大中文字幕| 国产真人无遮挡作爱免费视频| 久久www免费人成精品香蕉| 亚洲视频在线观看视频| 国产精品极品美女免费观看| 中文永久免费观看网站| 97久久国产亚洲精品超碰热| 国产精品亚洲玖玖玖在线观看 | 西西人体大胆免费视频| 亚洲成AV人在线观看天堂无码| 青娱分类视频精品免费2| 成人无码区免费A∨直播| 国产精品亚洲片在线va| 国产亚洲综合久久系列| 四虎免费在线观看| 久久成人免费大片| 国产成人亚洲毛片| 亚洲国产综合人成综合网站00| 久久久久亚洲精品无码网址| 无码少妇一区二区浪潮免费| 永久在线观看免费视频| 国产成人 亚洲欧洲| 亚洲美女一区二区三区| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲国产精品无码久久久不卡 | 亚洲欧洲无码AV电影在线观看| 好男人看视频免费2019中文| 野花香高清视频在线观看免费 | 四虎精品成人免费视频| 亚洲va在线va天堂成人| 亚洲精品成人网站在线观看| 免费v片视频在线观看视频| 免费看美女裸露无档网站| a级毛片免费观看视频| 美女裸体无遮挡免费视频网站| 亚洲成年网站在线观看| 亚洲精品无码久久久久久久| 久久亚洲高清综合| 亚洲国模精品一区|