您的位置:首页 > 运维架构 > 网站架构

7、ExtJs——Ext基础架构--动态加载js文件--很重要

2014-09-19 11:00 387 查看
Ext4.X提供的一大亮点就是Ext.Loader这个类的动态加载机制,只要遵循路径规范,即可动态加载js文件,方便把自己扩展组件动态加载进来,并减轻浏览器的压力。

关于动态加载机制,是在4.x中使用MVC模式一个必备的工作,学习好动态加载,以后去用Ext基于前台MVC模式下的开发至关重要。

定义并显示一个窗体,最原始的写法:

Ext.create('Ext.window.Window',{
title:'fsdafsd',
height:300,
width:400,
constrain:true,
modal:true,
html:'窗体内容',
renderTo:Ext.getBody()
}).show();

先定义一个自己的窗体类,然后再创建:
Ext.onReady(function(){
//window组件
/**
Ext.create('Ext.window.Window',{
title:'fsdafsd',
height:300,
width:400,
constrain:true,
modal:true,
html:'窗体内容',
renderTo:Ext.getBody()
}).show();
*/
//Ext 的MVC

//自己定义的一个类:MyWindow
Ext.define('MyWindow',{
extend:'Ext.window.Window', //继承Ext.window.Window
title:'fsdafsd',
height:300,
width:400,
constrain:true,
modal:true,
html:'窗体内容',
renderTo:Ext.getBody()
});

var w1 = Ext.create('MyWindow');
var w2 = Ext.create('MyWindow',{
title:'我是w2'
});
var w3 = Ext.create('MyWindow',{
title:'我是w3'
});
w2.show();
});

将自己定义的类写在一个单独的js文件中,在js/Extjs/下新建文件夹 ux,创建MyEindow.js文件
//define的类名,一定要严格按照包的层次路径去编写
Ext.define('<span style="color:#ff0000;"><strong>js/ExtJs/ux/MyWindow</strong></span>',{
extend:'Ext.window.Window', //继承Ext.window.Window
title:'我是动态加载进来的',
height:300,
width:400,
constrain:true,
modal:true,
html:'窗体内容',
renderTo:Ext.getBody()
});动态调用这个js文件
Ext.onReady(function(){
//window组件
/**
Ext.create('Ext.window.Window',{
title:'fsdafsd',
height:300,
width:400,
constrain:true,
modal:true,
html:'窗体内容',
renderTo:Ext.getBody()
}).show();
*/
//Ext 的MVC

//自己定义的一个类:MyWindow
/**
Ext.define('MyWindow',{
extend:'Ext.window.Window', //继承Ext.window.Window
title:'fsdafsd',
height:300,
width:400,
constrain:true,
modal:true,
html:'窗体内容',
renderTo:Ext.getBody()
});

var w1 = Ext.create('MyWindow');
var w2 = Ext.create('MyWindow',{
title:'我是w2'
});
var w3 = Ext.create('MyWindow',{
title:'我是w3'
});
w2.show();
*/
//-------------------------------------------
//动态加载一个js文件,需要的时候在加载

//第一步:在js/ExtJs/添加文件夹(ux)
//在这个ux下新建一个结束文件并定义自己的类

//第二步:在js/ExtJs/ux下编写自己的扩展组件(类)

//第三步:启用Ext动态加载机制,并设置要加载的路径
Ext.Loader.setConfig({
enabled:true,
paths:{
ppd:'js/ExtJs/ux'
}
});

//第四步:创建类的实例并使用
Ext.create('js/ExtJs/ux/MyWindow').show();

//Ext的requires和uses也可以动态加载

});需要注意的是:
自定义类的文件其文件名要与类名完全一样,类的定义中,类名要包含路径层次,不能出错。

在ExtJs的MVC模式中,用到的requires 或 uses使用的动态加载机制就是这里的原理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: