Extjs

ext 加载慢的原因

    博客分类:
    自我研究

内网系统使用EXT是不应该慢,慢只能说明是EXT没有用好!解决EXT慢可以通过如下途径:
1. 不使用EXT4.0.X,目前EXT4.0的性能是比较差的,建议使用Ext3.4
2. 尽可能说服客户不使用IE,可以用chrome和firefox代替(这不是主要原因)
3. 对ext.all.js文件一定要压缩,可以使用gzip压缩,能把原来的近800K压缩到140多K,这对速度的提高很明显!
4. 不能使用iframe的结构,不然每个iframe里面的Ext都会重新加载和初始化一次,也是慢的原因,可以使用模块化,
   自定义类的方式
5. 对模块要进行动态加载,只有当第一次使用到对应模块时才去加载使用到的类,然后再eval成对象即可,动态加载           非常有必要,详细技术可以看我的项目或者网上找
6. 如果对一些页面元素比较多的模块,可以使用延时初始化的方式,即:打开一个模块,然后显示一个loading,再将 复杂的元素动态加载上,如:
initComponent: function() {
var contentPanel = this.contentPanel = new Ext.Panel({
html: 'loading...'
});
Ext.apply(this, {
            autoScroll: false,
        closable: true,
            layout: 'border',
        items:[contentPanel]
        });
....
},

...
initContentPanel: function(data) {
//在该方法中加载初始化你的面板
}
...

//该类的初始化方法
initMethod: function(data) {
var task = new Ext.util.DelayedTask(function(){
    this.initContentPanel(data);
}, this);
task.delay(200);
}
这样对加载元素较多较复杂的面板是很有用的!
7. 一些公用的组件可以在index.html页面上就加载,以后用到时就可以直接使用, 如:
<div>
<script type="text/javascript" src="ExtJS/adapter/ext/ext-base.js.gzipfile"></script>
<script type="text/javascript" src="ExtJS/ext-all.js.gzipfile"></script>
<script type="text/javascript" src="ExtJS/src/locale/ext-lang-zh_CN.js"></script>
<script type="text/javascript" src="其它公用组件"></script>
</div>

8. 是最关键的,要优化自己的系统,加载大数据量grid时一定要有分页,grid加载100行数据和加载25行数据是速度是有明显的区别的,能重用的store就重用,一次请求就一次请求,不要分多次请求,优化自己的SQL....这些就不用说了,

EXTJS系统慢,那就是你的系统问题,不要赖ExtJS!谢谢!

你可能感兴趣的:(ext)