ExtJS4 动态加载

由于有人说不要每次都调用ext-all.js,会影响性能,所以有考虑动态加载,动态加载时页面调用ext.js(4.0.7在调试时可考虑用ext-dev.js),然后在onReady之前调用

Ext.Loader.setPath(‘Ext‘, ‘/ByInvoice/extjs/src‘);
Ext.Loader.setConfig({ enabled: true });  

 

注意一定是先调用setPath,再调用setConfig。由于我的程序并未从ext上继承什么,而是直接创建ext相应的类,所以需要改变Ext类的相关地址,否则动态加载会出错(在这儿我搞了一天才弄明白)

 

想研究更深的朋友可以看一下ext-dev.js相关代码:setPath: flexSetter(function(name, path) ,关注这个变量:this.config.paths,这个变量很简单,就是各种类的的类名和其地址的一个map,默认paths[‘Ext’]值为”src”,这就能解释为何老是报找不到extjs目录下的东西了.

另外发现动态加载并没有显著提升性能,反倒比之前调用ext-all.js更怕,有性能优化这方面的人吗,可以一起交流一下.目前我的一个页面要3.5秒,动态加载达到了4秒,只好放弃这个花了一天时间研究出来的成果.

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。