第1章 EXT概述
1.1 EXT版本变迁
q EXT1.0 发布于2007年2月,这标志着EXT正式从YUI社区中独立出来,不再仅仅支持YUI,而是提供了ext-base、prototype、jqury和YUI四种底层实现。采用多协议发布方式,用户可以选择在LGPL协议和企业协议下使用EXT。
q EXT2.0发布于2007年12月,这次大版本升级重写了核心组件部分,简化了组件的布局,而且EXT2.0之后我们可以使用layout和items属性更加方便地实现各种复杂布局,而且EXT2.0中也提供了许多功能强大的布局方式。
q EXT2.1发布于2008年4月,这次版本升级包括对REST的支持,并提供了一些扩展组件。自2.1之后,所有未付费的用户都只能在GPL协议下才能使用EXT,也就是说EXT2.1以及之后的版本都无法直接用于商业项目,必须向EXT缴费购买商业授权才能在商业产品中使用EXT。
q EXT2.2发布于2008年8月,这个版本提供了对浏览器FireFox3.x的支持,并提供了多种高级表单输入控件,比如可以实现单选多选框横排的RadioGroup和CheckboxGroup,多选列表MultiSelect和ItemSelector以及文件上传组件FileUploadField。
q EXT2.2.1发布于2009年2月,这个版本提供了对Chrome浏览器的支持,解决了一些内存泄露问题,并为Container提供了removeAll()函数,可以直接清空容器内的所有组件,同时提供了多种AIR下的扩展组件。
q EXT3.0发布于2009年12月,这是目前最新的一个发布版本了,此版本中最大的变化是对性能的提升,并解决了单页面应用长期使用时出现的内存泄露问题。
1.2 下载EXT发布包
我们可以从www.extjs.com/download免费获得EXT发布包,其中源代码、API文档和示例一应俱全。不过,如果想通过访问SVN获得最新的代码,就得花钱了。
1.3 如何查看EXT自带的API和示例
EXT发布包中的API文档放在docs目录下,虽然可以看到左边的菜单,但是点击之后,右侧的API都是通过Ajax方式获得的,不能直接在本地查看,必须解压之后部署到服务器上,然后通过浏览器访问服务器,这样才能看到,如果没有把这些内容放在服务器上,则docs就会打不开。
EXT发布包中也包含示例,可以在浏览器直接打开examples目录下的samples.html。当然,有一些示例需要放在服务器上才能看到效果。有一些示例的后台代码是使用PHP编写的,如果想查看这些示例的效果,还需要配置PHP运行环境。
如果你用Java,而且JDK的版本在1.5以上,那么建议你安装resin-3,因为可以直接在它上面运行PHP示例。
当然,你也可以在EXT网站的API home页上找到这些示例
有些示例用Ajax从后台读取数据,如果该示例不在服务器上,Ajax就会一直返回失败状态,从而无法获得任何数据,所以就看到正确的效果。不过,在www.extjs.com网站的论坛上曾经有人写了localXHR,可以通过Ajax方式从本地文件系统获得数据,这样也许就可以摆脱服务器的束缚了。随书代码中包含了localXHR.js,直接将此文件复制到你的应用中,即可实现使用Ajax从本地文件系统中直接获得数据。
如果你已经从http://www.extjs.com/download下载了EXT的zip格式的发布包,那么可根据如下步骤来使用它。
(1)将该发布包解压缩,其目录结构应该如图1-2所示,各目录的用途简要介绍如下。
q adapter目录下是EXT的核心代码和底层库,包括jQuery、Prototype和YUI的适配器。
q docs目录下是EXT的文档,其实最主要和最重要的是EXT的API,EXT开发中离不它。
q examples目录下是官方的演示示例,是初学者学习EXT的最佳途径之一。
q pkgs目录下是EXT压缩后的代码,经过压缩的代码,体积更小,加载更快。
q resource目录下是EXT要用到的图片文件和样式文件,EXT绚丽的外观全部由这个目录中的文件控制。
q src目录下是EXT的源码文件,也就是相对pkgs目录而言,未经过压缩的代码。
q ext-all.js文件是EXT的核心库,是必须引入的。
q ext-all-debug.js文件是ext-all.js的调试版,在调试时使用这个调试版本的文件才能正确定位出现错误的位置。
q INCLUDE_ORDER.txt文件用来说明在页面上引用底层库的JavaScript文件的顺序。
q LICENSE.txt文件是EXT的使用许可文件。