前了阵子,做了个firefox下的插件,在了解它的插件运作的过程中,才发现,原来程序还可以是这样组成的。
我们现在的所有B/S程序,UI上就是由HTML+JavaScript组成的,而它这样的局限就是,这样的UI只能在浏览器上运行;而且它的UI会比较简单,不能像桌面程序中的一些效果。
前面那个问题,其实很容易回答,大部分桌面程序也只能在Window上运行,大部分人都会装Windows,但是大部分人也都会装浏览器。
而后面这个问题,就是我要说的内容了。Firefox里面所有界面上的布局,都是用类似于HTML的XUL语言生成的,它比HTML支持更多的UI,更方便的一些操作。
当你发现,用HTML就可以构造出一个功能非常复杂的GUI时,当你发现光光html就可以做出一个Firefox那样的界面时,当你发现,Firefox这个平台上所有的程序都是由HTML组成时,这就是我的惊异了。
当你发现,其实用HTML就可以做出所有的GUI程序时,这就是Moliza的思路了(其实NetBean的RPC中各个Plugin的UI的思路跟这个有点类似)。
当你发现,你要打开一个程序,你只需要一个浏览器,打开一个网页,其余啥都不用做时,这就是Google的思路了。
这就是我的感觉。
而且我在做这个Firefox的插件时,我一直感觉我在用AJAX,其实AJAX的思路,最有价值的就是,UI上每次变更,不需要刷新整个页面,不需要 Reload整个UI,只需要变更它需要变化的部分,就像桌面程序一样。而你在用Firefox的时候,你会感觉到Firefox在刷新什么东西吗?