|
Posted on 2007-11-05 20:39 Kerwin Weng 閱讀(3806) 評論(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
要說AIR, 微軟很早以前推出的有 HTA. 至于腳本擴展, 為啥病毒木馬橫行, 也跟微軟那個強大的 VBScript/JScript 擴展是分不開的. 國內要流行, 那也得先把做桌面程序的人都干掉才行.
# re: Adobe AIR 初探 回復 更多評論
2007-11-06 09:38 by
印象中hta/htc當時還沒有AJAX這類應用,作用有限,現在AIR的API允許Javascript使用多媒體資源,跨域資源,windows menu,os資源等,甚至可以開socket,相對于當年,應該說air強大的正是時候.
關于國內流行這個問題,我覺得只要一個產品真的好,真正能幫助程序員提高開發效率,降低維護難度,又能讓客戶體驗提高的話,不用誰去打敗誰,都會有很多C/S程序員和新入門的程序員轉去另一邊
# re: Adobe AIR 初探 回復 更多評論
2007-11-06 10:15 by
現在的AIR還是比較雞肋的。
# re: Adobe AIR 初探 回復 更多評論
2007-11-06 11:03 by
典型的技術推廣貼的說辭
用戶 A 寫道:
我從實用的角度上來說 **** 框架/技術是相當爛的一個東西.
從理論上也許先進.
用戶 B 反駁道:
我不喜歡聽沒有證據的東西。不知道你指的"**** 是相當爛的一個東西"什么意思?不知道你使用****有多久?是做了具體的項目體會出來它很爛還是玩了半天就覺得它爛?能不能舉出具體的例子?
我認為 **** 很棒,因為這是我在做項目和學習的過程中體會到的。
國外有很多牛人都認為 ****很棒,牛人 XXX 從????年就已經在他的項目中使用了自己的****架構,至今有很多大型的項目都在使用這個****架構。**** 在此之上做了很多的改進,總結了框架 A 和框架 B 的不足,是經過很多考驗和實踐總結的成果,希望大家不要只花了半天時間就把它否定掉。
把 **** 替換成不同的框架/技術, 這就是當前技術推廣貼的一貫文風.
放這里完全合適, 呵呵, 其實這個是 JavaEye 上某 Spring Fans 反駁另一位反駁者的話的. 開個玩笑了, 別介意, 呵呵.
當然非常感謝樓主寫了介紹文章, 呵呵. AIR 我也去看了一眼, 個人覺得還不行啊, 就跟 AJAX 一樣, 開發成本太高了. 哪天瀏覽器內置各種控件(如 Tree, Table, Grid)可以調用就好了.
# re: Adobe AIR 初探 回復 更多評論
2007-11-06 11:55 by
我沒有推廣的意思,只是分享自己最新的體驗和看法,大家用不用不是我關心的.
蘿卜白菜各有所愛吧,我猜你肯定是做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
@pallove 的確,可能業界還沒有找到AIR最有競爭力的場景吧,80%功能瀏覽器可以做,剩下20%Flash和C/S又輕而易舉,不過即便這樣,AIR在有限的RIA場景中可能也是受人喜愛的
# re: Adobe AIR 初探 回復 更多評論
2007-11-06 14:15 by
嗯,是的,其特殊性就算jser不喜歡,flasher也會喜歡的。對air現在只是觀忘。java總是有很多東西學不完,而flash總是在等待學一些東西。
|