由于有人说不要每次都调用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秒,只好放弃这个花了一天时间研究出来的成果.