在当下的互联网时代,谁都在争先恐后的推出自己的浏览器,从远古时代的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访问把一个桌面运用拿到本地来。
所以,以后的互联网将是浏览器的天下