ExtJs是一个用于创建Web用户界面的JS框架,提供了丰富的界面部件及布局方式,对于web开发者来说,实现企业应用所需的各种画面只要掌握JS语言即可。不必再引入flash或silverlight技术,而且能很容易的创建风格统一的企业应用程序。
虽然ExtJs支持各种流行的浏览器,甚至包括IE6,但是它在IE系浏览器下运行、渲染的效率不高。在谷歌浏览器下表现最好,FireFox浏览器次之(这得益于谷歌浏览器的JS脚本引擎)。
然而谷歌浏览器和FireFox浏览器的核心都是WebKit(苹果公司开源的浏览器核心,负责解析HTML文本,并呈现到界面上),所以,要想让我们的CB/S+ExtJs结构的应用程序能有更好的表现,我们必须采用WebKit核心的浏览器。
虽然我们能很方便的获得WebKit的源码,然而编译它却十分耗时费力,不但要选对编译工具,还要安装一系列的SDK,编译时间更是长的惊人(这几乎是大型C++项目的通病)。编译出来的DLL使用起来也不是很方便(要翻阅大量的WebKit的API)。
幸运的是QT界面库为我们做了这些工作,QT库中包含webkit的浏览器控件,并且这个C++库是跨平台的,也就是说基于这几项技术开发的CB/S企业应用可以部署在Linux系统内。
除了使用QT界面库,还可以选择gtk+和wxWidgets两个界面库,而且这两个界面库都对WebKit做过包装,但是从开发方式,生产效率,运行速度等多方面考虑,还是QT最为合适。
QT界面库也分为两个版本,一个是收费的digia提供的QT,另一个是免费的qt-project提供的QT(GPL V3 LGPL V2),这里我们选择免费版的QT,本文第三节会介绍如何搭建开发环境。