最新軟體應用文章

Image credit:

整合Firefox延伸功能:Prism未來新的離線開發基礎

Atticus Wu
2008 年 3 月 23 日, 中午 12:00
0 分享次數
分享
分享
Twitter 發表
line
電郵
儲存
雖然Prism不算是新梗,不過有鑑於台灣這方面的資訊不多,加上相當優秀的讀者droger又整理出豐富的資料,在droger的慷慨分享下,我們又可一窺Prism的概念,大家如果覺得不錯,就為droger拍拍手,然後去他的部落格鼓勵一下囉!


關於Prism的介紹,除了官方網站的英文介紹之外,還可以參考中文的Nelson的遊樂場,主要就是一個以Firefox為基礎的Web離線應用,可以在輸入網址後,將WebApp轉為應用程式,但是dcat這邊分析地很好,如果只是將網站搬下來,的確是有點跛腳的方式。


最近因為iPhone出現,想到這類Web離線應用平台應該遲早會搬到iPhone上,加上Google Gears已經支援Windows Mobile平台,所以就想到應該將來會有底下這樣的架構出現才對。



如此一來就可以讓離線webapp的開發流程及技術,都能夠透過能夠完全離線執行的環境,沿用作為開發桌上軟體的另一種方式。

因為自己不會寫程式,所以只能搜尋現有資源來找這樣的方式可不可行,沒找到給Google Gears使用的,卻是找到了一些相關的Firefox延伸功能,如果Mozilla將他們整合到Prism當中的話,就可以實現這樣的架構了,其中一個是POW-Plain Old Webserver,這是一個精簡型的Web Server,透過延伸功能的方式依附在Firefox底下。

前往下載後,首先在使用能安裝POW的Firefox版本,將POW安裝好之後,可以到FireFox底下的【工具】下拉選單,找到POW的項目,可以進入【Option】進階設定,或是開啟、關閉這個POW伺服器。



當 然另外也可以透過【附加面板】進入【Option】設定,這時可以看到改變埠號跟HTML網頁置放的目錄位置設定,如果有安全性限制,還可以使用帳號密碼 保護。而如果變更埠號或網頁目錄位置的話,需要在上一步的位置,按二次【Turn POW On/Off】,重新啟動POW伺服器,不過在這裡建議先等看完下一個步驟再回來改會比較好。



如 果沒有先做修改位置的動作的話,就可以輸入預設的 http://localhost:6670/ 網頁位置,就會進入到POW的預設網頁,在裡面有一個【POW Files】的連結,就是POW的FAQ說明檔案置放的位置,要修改網頁目錄之前,滑鼠移到連結上方,就可以在瀏覽器頁面最下方,找到這個鏈結顯示網頁位 置存放的地方。


POW Server端的控制,是使用以Javascript為語法、副檔名為.sjs的方式進行,查詢維基百科之後才知道,POW所用的Server Side Javascript(內含Reference連結),原來就是現有的網頁伺服器語言的基礎,只是用不同的語法再透過轉譯,而POW支援PHP,Python,Perl的方法,也在官方wiki有介紹。

只 要安裝好上述的描述語言環境之後,到預設的網頁位置中,找到starup.sjs的檔案並且修改,例如:預設的 htdocs/system/startup.sjs位置,去改寫相關呼叫的程式碼,之後就可以把寫好的相關php,py,pl檔丟到網頁目錄中執行了, POW也支援資料庫和Ajax,安裝好之後在locahost的FAQ裡就可以找到,資料庫使用的是SQLite,可以搭配另一個Firefox延伸功能SQLite Manager管理或是使用SQL語法來寫。

除了POW如果整合到Prism中,可作為離線程式開發的基礎核心之外,另外一個Server Switcher的延伸功能,是讓localhost可以切換對應到網路上同樣位置的網頁,安裝好之後,到【工具】、【附加元件】Server Switch偏好設定裡去,就可以設定localhost相關位置對應到Internet上的網頁。



設定完畢之後,到localhost本機網頁伺服器端的相關位置,就會看到網址列右方有個黃色小球。


按下去之後就可以分別切換到網路上的真正位置,和回到local端位置,如果整合改寫到Prism當中,就能夠用在離線與網路同步的部份了。

除了POW、SQLite Manager和Server Switcher之外,只要Prism支援全部Firefox延伸功能,還有支援Proxy的延伸功能免費的FTPClient以及需要付費的FTP Server延伸功能,都是假如整合到Prism中,可以成為技術核心的方便功能。

而三月更新的Prism 0.9也的確朝向這個方向發展,並且與Firefox3結合,新版本的Prism可以新增外掛元件。


當中就可以看到目前支援跟預設安裝的都是一些多媒體相關Plugin,不過可惜的是上述的延伸功能現在都還不能裝到Prism當中。


但是如果Firefox裝了上述元件之後維持開啟,用Prism將預設的http://localhost:6670/位置設置為WebApp。


就至少可以看到整個網站被運作成Prism WebApp的情況,當然這必須要整個網站都在本機端,而且維持安裝了POW之後的Firefox開啟狀態。


另外如果真的Prism可以嵌入支援POW的話,或許可以讓開發者能夠將離線網站的內容,打包到WebApp這個封存檔當中被POW讀取,如此也可以讓網站大小被壓縮,更方便散佈程式。

如果對這個概念有興趣但是比較熟悉Java的話,可以參考以下的關鍵字搜尋和相關資料

嵌入式Web Server

查到其中一篇範例
http://articles.techrepublic.com.com/5100-22-5025364.html

嵌入式資料庫

嵌入式瀏覽器總介紹
http://today.java.net/pub/a/today/2004/05/24/html-pt1.html

另外一個專案jdic
https://jdic.dev.java.net/#demos

一個jdic範例
http://workshop.evolutionzone.com/2007/08/30/jdic-embedding-a-web-browser-in-java/

lobo browser網址
http://lobobrowser.org/java-browser.jsp

範例
http://java.dzone.com/news/plugging-lobos-pure-java-web-b

在此僅能提供資料搜尋的方向,至於要怎麼實做,就比較幫不上忙了,真不好意思~

[撰文:Droger]