这篇文章主要介绍了Ext.js4.2.1中Ext.Loader是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
一:描述
Ext.Loader在ExtJs4+中是动态加载的核心。一般通过Ext.require()使用。Ext.Loader同时支持同步和异步加载方式。
二:异步加载
优势:
1.支持跨域访问
2.不需要Web服务器,可通过文件系统协议运行程序 如: file://path/to/your/index.html
3.方便调试
劣势:
1.必须事先指定依赖
使用方法:
//单个类的别名
Ext.require('widget.window');
//单个类
Ext.require('Ext.window.Window');
//多个别名,多个类
Ext.require(['widget.window', 'layout.border', 'Ext.data.Connection']);
Ext.require(['widget.*', 'layout.*', 'Ext.data.*']);
三:同步加载
优势:
1.1.不需要事先指明依赖,只需要事先包含ext-all.js即可
劣势:
1.不便于调试,除非使用Firebug
2.不能跨域请求,因为XHR的限制必须是相同域名
3.必须有Web服务器
使用方法:可以遵守一个简单的法则 用Ext.create代替new关键字来实例化对象
如:Ext.create('widget.window', { ... }); 或 Ext.create('Ext.window.Window', {});
另外可采用混合加载的模式结合同步和异步加载的优势
四:参数
1.disableCaching:Boolean
禁止缓存js文件,默认为true
如果我们设置DisableCaching等于true则在发送请求时自动添加一个以DisableCachingParam属性值为参数名(如果DisableCachingParam值为空则默认为”_dc”),值为当前时间的参数。这样能有效的与缓存搭配工作。
2.disableCachingParam:String
缓存参数,默认为'_dc'
3.enabled:Boolean
是否开启动态加载,默认为false
如:
Ext.Loader.setConfig({
enabled: true,
paths : {//'类名前缀':'所在路径'
'App.ux' : 'lib'
}
});
Ext.require(['App.ux.MusicWin']);//通过匹配会自动加载'lib/MusicWin.js'
注意Ext.require里面是App.ux下面的MusicWin.js文件
MusicWin.js代码:
Ext.define('App.ux.MusicWin',{
play : function(){
alert('playing...');
}
});
4.garbageCollect:Boolean
5.paths:Ojbect
文件与命名空间的映射
五:方法
1.addClassPathMappings
className:path mappings 类似于参数paths
2.exclude
其简写形式为 Ext.exclude
3.require
其简写形式为 Ext.require
4.onReady(fn,scope,withDomReady)
添加一个listener,当所有脚本加载完成后,执行监听器中的内容。
5.setConfig(config)
设置loader的参数,此方法应在ext-*.js加载之后,Ext.onReady之前被调用。
如: Ext.Loader.setConfig({
enabled : true,
disableCaching : true,
paths : {
'Ext.ux.desktop' : '../desktoplib',
"MyDesktop" : '../modules'
}
});
Ext.require(...);
var startup;
Ext.onReady(function() {
startup = Ext.create("MyDesktop.StartUp");
startup.loadDesktop();
});
6.syncRequire(expressions,[fn],[scope],[excludes])
同步加载指定的类和它们的直接依赖,加载完成后,执行相应的回掉函数。
别名为syncRequire.
感谢你能够认真阅读完这篇文章,希望小编分享的“Ext.js4.2.1中Ext.Loader是什么”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。