Habitat Framework

          專(zhuān)注于Java EE企業(yè)級(jí)開(kāi)發(fā)
          posts - 13, comments - 81, trackbacks - 0, articles - 5
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Adobe AIR 初探

          Posted on 2007-11-05 20:39 Kerwin Weng 閱讀(3810) 評(píng)論(7)  編輯  收藏 所屬分類(lèi): Javascript
          好像國(guó)內(nèi)對(duì)Adobe的新產(chǎn)品AIR反應(yīng)還不多,我個(gè)人試用了下覺(jué)得其實(shí)用處還是很大的,于是我就拋磚引玉寫(xiě)一篇相關(guān)介紹文章吧

          AIR其實(shí)是一套框架和一個(gè)VM,它允許用戶把Javascript,HTML,CSS集成到統(tǒng)一的客戶端,在用戶桌面運(yùn)行,避免了瀏覽器差異,并且實(shí)現(xiàn)了跨平臺(tái)的通用性,同時(shí)又對(duì)Javascript功能進(jìn)行了很多擴(kuò)展,比如讀取本地磁盤(pán)文件,做跨域的遠(yuǎn)程訪問(wèn),使用多媒體文件等等(相信是flash的底層在支持),相對(duì)于兩年前的Flex,AIR在RIA領(lǐng)域無(wú)疑又是一個(gè)跨越,
          想象一下以后我們可以用JS+HTML+CSS來(lái)寫(xiě)基于http的遠(yuǎn)程且防火墻安全的C/S應(yīng)用了,還是蠻爽吧
          Demo在這里:http://labs.adobe.com/showcase/air/?promoid=BJXTF
          用JS來(lái)寫(xiě)應(yīng)用的文檔在這里:http://livedocs.adobe.com/labs/air/1/devappshtml/


          Adobe AIR出新版SDK后,出乎意料的是很多之前的Demo不能跑了,會(huì)出"parsing disallowed"
          ,原因就是adobe換用了新的安全框架,禁止掉了Javascript中某些可能對(duì)其框架做出安全威脅的API,比如說(shuō)JSON的命根--eval

          Adobe的官方解釋是在AIR2禁止掉了類(lèi)似eval這種動(dòng)態(tài)代碼加載技術(shù)在其Application sandbox中的運(yùn)行,解決辦法是把你有eval的應(yīng)用移到Browse sandbox中執(zhí)行,所謂的Browse sandbox意思是你的應(yīng)用主頁(yè)面是通過(guò)application.xml中配置的根頁(yè)面來(lái)用iframe引入的,在iframe引入的頁(yè)面中你就可以做eval,而把其他如跨域查詢等AIR提供的高級(jí)API操作放到根頁(yè)面中去做,然后通過(guò)一個(gè)parent/childSandboxBridge來(lái)做互相引用和傳遞數(shù)據(jù)的橋梁,
          但是同時(shí)你在iframe中的js也不能直接使用AIR所提供的一些高級(jí)API,比如air.trace().原文的解釋在這里 ,Adobe甚至還寫(xiě)了一篇文章來(lái)鼓吹這種方式其實(shí)更符合設(shè)計(jì)模式--根頁(yè)面負(fù)責(zé)數(shù)據(jù)傳遞,iframe頁(yè)面負(fù)責(zé)業(yè)務(wù)邏輯.但是無(wú)論如何這篇文章作為Browse sandbox的入門(mén)來(lái)講還是很值得細(xì)讀的

          于是結(jié)合自己當(dāng)前的實(shí)際需要,我寫(xiě)了一個(gè)批量查詢airasia.com機(jī)票的小工具,因?yàn)閍irasia從來(lái)都是打廣告說(shuō)從多久到多久,從那里飛到那里才幾塊MYR! 就是這個(gè)"起"字相當(dāng)關(guān)鍵......直接造成每次我去查的時(shí)候發(fā)現(xiàn)因?yàn)?已經(jīng)快滿坐"了,所以價(jià)格和平時(shí)的一樣,甚至更高,聽(tīng)同事說(shuō)他們都是先一天一天去查看哪天便宜就趕快預(yù)定,太辛苦了吧,那我要查2007-11-05到2008-01-31日的機(jī)票要花多少時(shí)間啊,而且不查到最后一天還不知道是不是最便宜的,嘲笑他們?cè)贾笪揖蜎Q定自己寫(xiě)個(gè)工具來(lái)查

          所以我寫(xiě)的第一個(gè)AIR應(yīng)用就是這個(gè)AirAsiaTicketsSearch,可以批量查詢某個(gè)時(shí)間段去和某個(gè)時(shí)間段回的所有機(jī)票,并且把機(jī)票價(jià)格用jQuery.tablesort給排序出來(lái),并且用jQuery.tablesort.page做了分頁(yè)(說(shuō)句題外話,jQuery的tablesort確實(shí)很強(qiáng)大,但是在排序"1,280.00 CNY"這種數(shù)據(jù)的時(shí)候還是有問(wèn)題).另外開(kāi)發(fā)環(huán)境值得一說(shuō),無(wú)論是eclipse+aptana或者aptana standalone都一樣的,aptana就是一個(gè)Eclipse的RCP,關(guān)鍵就是aptana真的是很好用的工具,目前不僅支持AIR,而且還支持開(kāi)發(fā)Apple iPhone的應(yīng)用,只是專(zhuān)業(yè)版要收費(fèi).....

          后面給出截圖,
          結(jié)果發(fā)現(xiàn)昨天還有295.99的機(jī)票,到了今天就漲到349.99了-_-!



          評(píng)論

          # re: Adobe AIR 初探  回復(fù)  更多評(píng)論   

          2007-11-06 09:25 by BeanSoft
          要說(shuō)AIR, 微軟很早以前推出的有 HTA. 至于腳本擴(kuò)展, 為啥病毒木馬橫行, 也跟微軟那個(gè)強(qiáng)大的 VBScript/JScript 擴(kuò)展是分不開(kāi)的. 國(guó)內(nèi)要流行, 那也得先把做桌面程序的人都干掉才行.

          # re: Adobe AIR 初探  回復(fù)  更多評(píng)論   

          2007-11-06 09:38 by Kerwin Weng
          印象中hta/htc當(dāng)時(shí)還沒(méi)有AJAX這類(lèi)應(yīng)用,作用有限,現(xiàn)在AIR的API允許Javascript使用多媒體資源,跨域資源,windows menu,os資源等,甚至可以開(kāi)socket,相對(duì)于當(dāng)年,應(yīng)該說(shuō)air強(qiáng)大的正是時(shí)候.

          關(guān)于國(guó)內(nèi)流行這個(gè)問(wèn)題,我覺(jué)得只要一個(gè)產(chǎn)品真的好,真正能幫助程序員提高開(kāi)發(fā)效率,降低維護(hù)難度,又能讓客戶體驗(yàn)提高的話,不用誰(shuí)去打敗誰(shuí),都會(huì)有很多C/S程序員和新入門(mén)的程序員轉(zhuǎn)去另一邊

          # re: Adobe AIR 初探  回復(fù)  更多評(píng)論   

          2007-11-06 10:15 by pallove
          現(xiàn)在的AIR還是比較雞肋的。

          # re: Adobe AIR 初探  回復(fù)  更多評(píng)論   

          2007-11-06 11:03 by BeanSoft
          典型的技術(shù)推廣貼的說(shuō)辭

          用戶 A 寫(xiě)道:
          我從實(shí)用的角度上來(lái)說(shuō) **** 框架/技術(shù)是相當(dāng)爛的一個(gè)東西.
          從理論上也許先進(jìn).

          用戶 B 反駁道:
          我不喜歡聽(tīng)沒(méi)有證據(jù)的東西。不知道你指的"**** 是相當(dāng)爛的一個(gè)東西"什么意思?不知道你使用****有多久?是做了具體的項(xiàng)目體會(huì)出來(lái)它很爛還是玩了半天就覺(jué)得它爛?能不能舉出具體的例子?
          我認(rèn)為 **** 很棒,因?yàn)檫@是我在做項(xiàng)目和學(xué)習(xí)的過(guò)程中體會(huì)到的。
          國(guó)外有很多牛人都認(rèn)為 ****很棒,牛人 XXX 從????年就已經(jīng)在他的項(xiàng)目中使用了自己的****架構(gòu),至今有很多大型的項(xiàng)目都在使用這個(gè)****架構(gòu)。**** 在此之上做了很多的改進(jìn),總結(jié)了框架 A 和框架 B 的不足,是經(jīng)過(guò)很多考驗(yàn)和實(shí)踐總結(jié)的成果,希望大家不要只花了半天時(shí)間就把它否定掉。



          把 **** 替換成不同的框架/技術(shù), 這就是當(dāng)前技術(shù)推廣貼的一貫文風(fēng).

          放這里完全合適, 呵呵, 其實(shí)這個(gè)是 JavaEye 上某 Spring Fans 反駁另一位反駁者的話的. 開(kāi)個(gè)玩笑了, 別介意, 呵呵.

          當(dāng)然非常感謝樓主寫(xiě)了介紹文章, 呵呵. AIR 我也去看了一眼, 個(gè)人覺(jué)得還不行啊, 就跟 AJAX 一樣, 開(kāi)發(fā)成本太高了. 哪天瀏覽器內(nèi)置各種控件(如 Tree, Table, Grid)可以調(diào)用就好了.

          # re: Adobe AIR 初探  回復(fù)  更多評(píng)論   

          2007-11-06 11:55 by Kerwin Weng
          我沒(méi)有推廣的意思,只是分享自己最新的體驗(yàn)和看法,大家用不用不是我關(guān)心的.

          蘿卜白菜各有所愛(ài)吧,我猜你肯定是做Web application的吧,所以巴不得瀏覽器內(nèi)置很多東西,而且最好不用寫(xiě)JS,都交給gwt,JSF等幫你生成了.個(gè)人覺(jué)得還是應(yīng)該把Javascript當(dāng)成一門(mén)很有用的語(yǔ)言對(duì)待,不過(guò)我最希望瀏覽器做的就是提供統(tǒng)一的支持,少一些自作主張,尤其憎惡IE這個(gè)不遵守W3C標(biāo)準(zhǔn)的家伙,這在要求客戶統(tǒng)一使用IE的時(shí)候是不需要考慮的

          我不知道你說(shuō)的AJAX開(kāi)發(fā)成本高指什么,我覺(jué)得倒是很容易啊,prototype,jQuery,dojo我還可以數(shù)出10個(gè)js的lib都實(shí)現(xiàn)了高級(jí)AJAX的抽象封裝,甚至我自己改過(guò)的JSON-RPC,調(diào)用遠(yuǎn)程數(shù)據(jù)也就是1-2句代碼.如果是指整個(gè)AJAX應(yīng)用的話,的確Javascript占的分量相當(dāng)多,對(duì)沒(méi)有豐富的Javascript組織經(jīng)驗(yàn)的團(tuán)隊(duì)來(lái)說(shuō)還是很繁重的工作量,但是一旦有很好代碼組織體系,充分利用Javascript的繼承特性,開(kāi)發(fā)應(yīng)用還是非常快的,更不要說(shuō)還有像jQuery這樣的優(yōu)秀lib,插件眾多,甚至在Javascript中實(shí)現(xiàn)AOP

          # re: Adobe AIR 初探  回復(fù)  更多評(píng)論   

          2007-11-06 12:04 by Kerwin Weng
          @pallove
          的確,可能業(yè)界還沒(méi)有找到AIR最有競(jìng)爭(zhēng)力的場(chǎng)景吧,80%功能瀏覽器可以做,剩下20%Flash和C/S又輕而易舉,不過(guò)即便這樣,AIR在有限的RIA場(chǎng)景中可能也是受人喜愛(ài)的

          # re: Adobe AIR 初探  回復(fù)  更多評(píng)論   

          2007-11-06 14:15 by pallove
          嗯,是的,其特殊性就算jser不喜歡,flasher也會(huì)喜歡的。對(duì)air現(xiàn)在只是觀忘。java總是有很多東西學(xué)不完,而flash總是在等待學(xué)一些東西。

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 牟定县| 灵川县| 建始县| 眉山市| 拜泉县| 兴安县| 井陉县| 镶黄旗| 常山县| 石楼县| 怀柔区| 类乌齐县| 永顺县| 竹溪县| 夹江县| 岳阳市| 嘉兴市| 库车县| 会同县| 青铜峡市| 仁化县| 和硕县| 莲花县| 汕头市| 大同市| 永安市| 德格县| 东乌珠穆沁旗| 葵青区| 迁安市| 和平区| 太仆寺旗| 新建县| 浙江省| 平遥县| 阿勒泰市| 阜康市| 涿鹿县| 马龙县| 湛江市| 阿城市|