Habitat Framework

          專注于Java EE企業級開發
          posts - 13, comments - 81, trackbacks - 0, articles - 5
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Adobe AIR 初探

          Posted on 2007-11-05 20:39 Kerwin Weng 閱讀(3809) 評論(7)  編輯  收藏 所屬分類: Javascript
          好像國內對Adobe的新產品AIR反應還不多,我個人試用了下覺得其實用處還是很大的,于是我就拋磚引玉寫一篇相關介紹文章吧

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


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

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

          于是結合自己當前的實際需要,我寫了一個批量查詢airasia.com機票的小工具,因為airasia從來都是打廣告說從多久到多久,從那里飛到那里才幾塊MYR! 就是這個"起"字相當關鍵......直接造成每次我去查的時候發現因為"已經快滿坐"了,所以價格和平時的一樣,甚至更高,聽同事說他們都是先一天一天去查看哪天便宜就趕快預定,太辛苦了吧,那我要查2007-11-05到2008-01-31日的機票要花多少時間啊,而且不查到最后一天還不知道是不是最便宜的,嘲笑他們原始之后我就決定自己寫個工具來查

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

          后面給出截圖,
          結果發現昨天還有295.99的機票,到了今天就漲到349.99了-_-!



          評論

          # re: Adobe AIR 初探  回復  更多評論   

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

          # re: Adobe AIR 初探  回復  更多評論   

          2007-11-06 09:38 by Kerwin Weng
          印象中hta/htc當時還沒有AJAX這類應用,作用有限,現在AIR的API允許Javascript使用多媒體資源,跨域資源,windows menu,os資源等,甚至可以開socket,相對于當年,應該說air強大的正是時候.

          關于國內流行這個問題,我覺得只要一個產品真的好,真正能幫助程序員提高開發效率,降低維護難度,又能讓客戶體驗提高的話,不用誰去打敗誰,都會有很多C/S程序員和新入門的程序員轉去另一邊

          # re: Adobe AIR 初探  回復  更多評論   

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

          # re: Adobe AIR 初探  回復  更多評論   

          2007-11-06 11:03 by BeanSoft
          典型的技術推廣貼的說辭

          用戶 A 寫道:
          我從實用的角度上來說 **** 框架/技術是相當爛的一個東西.
          從理論上也許先進.

          用戶 B 反駁道:
          我不喜歡聽沒有證據的東西。不知道你指的"**** 是相當爛的一個東西"什么意思?不知道你使用****有多久?是做了具體的項目體會出來它很爛還是玩了半天就覺得它爛?能不能舉出具體的例子?
          我認為 **** 很棒,因為這是我在做項目和學習的過程中體會到的。
          國外有很多牛人都認為 ****很棒,牛人 XXX 從????年就已經在他的項目中使用了自己的****架構,至今有很多大型的項目都在使用這個****架構。**** 在此之上做了很多的改進,總結了框架 A 和框架 B 的不足,是經過很多考驗和實踐總結的成果,希望大家不要只花了半天時間就把它否定掉。



          把 **** 替換成不同的框架/技術, 這就是當前技術推廣貼的一貫文風.

          放這里完全合適, 呵呵, 其實這個是 JavaEye 上某 Spring Fans 反駁另一位反駁者的話的. 開個玩笑了, 別介意, 呵呵.

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

          # re: Adobe AIR 初探  回復  更多評論   

          2007-11-06 11:55 by Kerwin Weng
          我沒有推廣的意思,只是分享自己最新的體驗和看法,大家用不用不是我關心的.

          蘿卜白菜各有所愛吧,我猜你肯定是做Web application的吧,所以巴不得瀏覽器內置很多東西,而且最好不用寫JS,都交給gwt,JSF等幫你生成了.個人覺得還是應該把Javascript當成一門很有用的語言對待,不過我最希望瀏覽器做的就是提供統一的支持,少一些自作主張,尤其憎惡IE這個不遵守W3C標準的家伙,這在要求客戶統一使用IE的時候是不需要考慮的

          我不知道你說的AJAX開發成本高指什么,我覺得倒是很容易啊,prototype,jQuery,dojo我還可以數出10個js的lib都實現了高級AJAX的抽象封裝,甚至我自己改過的JSON-RPC,調用遠程數據也就是1-2句代碼.如果是指整個AJAX應用的話,的確Javascript占的分量相當多,對沒有豐富的Javascript組織經驗的團隊來說還是很繁重的工作量,但是一旦有很好代碼組織體系,充分利用Javascript的繼承特性,開發應用還是非常快的,更不要說還有像jQuery這樣的優秀lib,插件眾多,甚至在Javascript中實現AOP

          # re: Adobe AIR 初探  回復  更多評論   

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

          # re: Adobe AIR 初探  回復  更多評論   

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

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 惠水县| 丘北县| 丰台区| 永寿县| 南乐县| 三都| 板桥市| 大城县| 关岭| 开阳县| 惠水县| 株洲市| 中阳县| 姚安县| 罗江县| 长丰县| 健康| 松阳县| 镇远县| 二连浩特市| 界首市| 皮山县| 吴桥县| 咸丰县| 昌都县| 双江| 丰顺县| 绿春县| 宁河县| 星座| 大田县| 鸡东县| 扎鲁特旗| 遂平县| 南溪县| 广水市| 沂水县| 宿迁市| 通化市| 砚山县| 衢州市|