Web程序的革命
CGI----基于传统服务器端模式
Java Applet----基于本地虚拟机的运行模式
Flash----基于浏览器插件的运行模式
Web Start----在线安装模式
AJAX----基于浏览器的运行模式
RIA----基于Flex、Sliverlight桌面程序系统
选择Ajax理由
AJAX虽然不是最新的WEB开发技术,但是是最后一个支持浏览器的WEB开发技术,因为无论是Sliverlight,还是Flex其原理已经不再需要浏览器支持了,而浏览器技术发展到现在,不可能在短期内放弃。
AJAX大都用javascript,javascript在经历近十年发展,已经拥有庞大的应用队伍,其继续发展的可能性是肯定存在的。
EXTJS属于AJAX技术
基于javascript语言
基于java swing 的MVC架构
支持组件化、模块化设计
提供完善的本的话数据源的支持
完善与服务端的交互机制
是最有可能拥有大规模可视化集成开发环境的AJAX技术
EXTJS的面向对象程序设计
EXTJS在面向对象所出的努力
支持命名空间
定义:对于类的组织定义方式。代码举例:
Ext.namespace("Ext.dojochina");
java代码对照:
package Ext.dojochina
支持类实例属性
定义:对于一个实力的特征描述。代码举例:
Ext.applly(Ext.dojochina.Person.prototype,{name:"毛毛"});
java代码对照:
private String name = "毛毛";
public void setName(String name){this.name = name}
public String getName(){return this.name}
支持实例方法
定义:一个对象所能具有的功能与动作。代码示例:
print:function(){
alert(String.format("姓名:{0},性别:{1}",this.name,this.sex));
}
java对照:
public void print(){
System.out.printf("姓名:%s,性别:%s,this.name,this.sex");
}
支持类静态方法
Ext.dojochina.Person.print=function(_name, _sex){
var _person = new Ext.dojochina.Person();
_person.name = _name;
_person.sex = _sex;
_person.print();
}
支持构造方法
定义:在初始化一个对象的同时执行一个方法。代码示例:
Ext.dojochina.Person = function(_cfg){
Ext.apply(this, _cfg);
}
支持类继承
定义:对于类的一种扩展性。代码示例:
Ext.extend(Ext.dojochina.Student,Ext.dojochina.Person,{job:"学生"});
支持类实例方法重写
定义:子类继承父类是对其已经存在的方法进行重新定。代码示例:
Ext.extend(Ext.dojichina.Teacher,Ext.dojochina.Person,{print:function(){
alert(String.format("{0}是一位{1}老师",this.name,this.sex));
}});
支持命名空间别名
定义:对命名空间起别名:代码示例:
PN = Ext.namespace;
支持类别名
定义:对于类的别称。代码示例:
PN = Ext.dojochina.Person;
支持事件列队
定义:对于外界影响的反应,在EXTJS还支持事件列队模式。由Ext.util.Observable类支持
Ext.namespace("Ext.dojochina");
Ext.dojochina.Person = function(){
this.addEvents(
"namechange",
"sexchange"
);
};
Ext.extend(Ext.dojochina.Person,Ext.util.Observable,{
name:"",
sex:"",
setNames:function(_names){
if(this.name != _names){
this.fireEvent("namechange",this,this.name,_name);
this.name = _name;
}
},
srtSex:function(_sex){
if(this.sex != _sex){
this.fireEvent("sexchange",this,this.sex,_sex);
this.sex = _sex;
}
}
});
EXTJS得令集中面向对象设计体现
GWT-EXT为java程序员编写EXTJS的应用提供了可能
EXTTLD为jsp程序员的标签化部署EXTJS提供了可能
EXTSharp为C#程序员编写EXTJS的应用提供了可能