在當下的互聯網時代,誰都在爭先恐后的推出自己的瀏覽器,從遠古時代的Netscape與IE之爭,到現在的Firefox,IE,Opera,Chrome,Safari大戰,硝煙彌漫。為什么一個目前看來僅僅是用來上網瀏覽網頁的程序會引得無數商家拼得你死我活?
就我看來未來的互聯網將是一個瀏覽器的時代,瀏覽器即是操作系統,目前的瀏覽器除了基本的瀏覽網頁的功能外,都在向其它方向延伸,比如集成郵件客戶端,或者提供接口,讓別人可以基于自己的瀏覽器開發出各種各樣的應用,比如Firefox的“附加組件",Opera的Widget與Unite等等,這些插件可以基于這些瀏覽器開發,但可以獨立于瀏覽器運行,在Firefox的插件庫里(https://addons.mozilla.org/zh-CN/firefox),各種插件有上萬種之多。這些插件大到是一個獨立的應用程序,下到只是一些快捷方式。
一直以來,網頁程序與桌面程序都被看成是兩個分開的內容,互沒關系,網頁程序運行于瀏覽器上,桌面程序獨立運行,開發也是獨立的,桌面程序有各種各樣自己的開發環境,似乎不可能把網頁脫離瀏覽器拿到桌面上來以桌面應用的方式獨立應用。
但這已經不是不可能的事情了
如果我告訴你Firefox、Thunderbird 這樣Mozilla的桌面應用程序都是使用HTML,Javsscript,CSS這些網頁開發技術開發出來的,你信嗎?
但確實是這樣。這些桌面程序的菜單欄、工具欄、各種界面、對話框這些都是通過HTML、CSS定義出來的,各種事件都是通過Javascript寫的。
這使用了Mozilla的技術:XUL(XML User-interface Language XML用戶交互語言)。
XUL柔和了HTML,CSS,提供了一套自己的界面定義語言,比如定義菜單等桌面應用常見的控件,但HTML,CSS仍然可以直接使用,然后通過Javascript來寫事件處理。通過它你就可以像開發網頁一樣開發桌面應用,在Firefox的插件庫中許多都是通過它開發出來的。XUL其實就是瀏覽器把HTML,CSS,Javascript渲染成網頁換成了渲染成桌面程序,通過Firefox提供的API,Javascript還能訪問桌面的內容,比如操作本地文件等等,同時XUL應用也是基于web的,所以它也有網址,可以把.xul文件發給別人,別人通過firefox就能訪問它,而效果不再是網頁了,而是桌面效果了,當然這其中有安全設置
可以進到Firefox的安裝目錄的chrome下面,解壓任意的jar文件,可以看到里面有很多的js,css,xml文件。用Firefox訪問其中的xul文件,就能看到通過瀏覽器訪問的效果,比如下圖是Firfox的錯誤控制臺瀏覽器中訪問效果

除了Firefox外,Opera也有這種功能,Opera的widget與unite也是通過HTML、CSS,Javascript來開發的,并且他們也可以作為基于瀏覽器運行的桌面應用,比如從Opera的插件庫(http://www.opera.com/addons/)中下載一個養魚的娛樂應用widget:

看它的目錄中也是有許多的css,html,js。
其實想想,這是多么好的創意,大多數的瀏覽器都只是把HTML,CSS,Javascript這些技術在瀏覽器中進行渲染執行,如果把瀏覽器作為一個底層的運行平臺,稍加點擴展,不就可以讓這些傳統的網頁技術作為獨立的桌面應用程序運行了嗎,再提供點能夠訪問操作系統的API,Javascript就可以像其它桌面開發語言一樣訪問桌面環境的內容了,但到底這些內容仍然是來之于網絡的,可以有一個URL地址,換種角度看,可以在任何地方通過URL訪問把一個桌面運用拿到本地來。
所以,以后的互聯網將是瀏覽器的天下