精华帖 (2) :: 良好帖 (4) :: 新手帖 (0) :: 隐藏帖 (9)
|
|
---|---|
作者 | 正文 |
发表时间:2011-11-26
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!谢谢! 大体就这么多吧!希望对大家有用! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-11-28
哥们第五点不太明白。能举个详细的例子,或者贴上代码看看嘛
|
|
返回顶楼 | |
发表时间:2011-11-28
我也是 第五点 有疑问 楼主能提供个详细例子吗
|
|
返回顶楼 | |
发表时间:2011-11-28
第一点不理解,哪的数据说明4比3性能差
|
|
返回顶楼 | |
发表时间:2011-11-28
第五点不明白的可以看:
http://www.iteye.com/topic/1114534 总体来说就是在你的APP中定义一个 1. this.cachedModuls = []; 然后用到需要的JS时: 2. Ext.Ajax.request({ url: jsFilePath, params: {file: js}, success: JSLoader._onLoadJs, method: 'GET', scope: callback }); 3. 加载成功后: eval(response.responseText); 4. 以后用到相关类时先到cachedModuls中找 |
|
返回顶楼 | |
发表时间:2011-11-28
waitingmyself 写道 第一点不理解,哪的数据说明4比3性能差
你可以到官网相关说明中看!!我这要下班了,回去再给你找! |
|
返回顶楼 | |
发表时间:2011-11-28
据说Ext4中的grid重写过,性能牛逼了点
|
|
返回顶楼 | |
发表时间:2011-11-28
“4. 不能使用iframe的结构,不然每个iframe里面的Ext都会重新加载和初始化一次,也是慢的原因,可以使用模块化”
|
|
返回顶楼 | |
发表时间:2011-11-28
第8点可以再扩充一下:
重要的是交互设计,OPOA与传统后台生成完整html的交互模式有很大不同 传统网页显示一次服务器开销比较大,一般都是尽量显示较多的数据,浏览器也会有滚动条。相当于一次给你够多的选择,让你在尽可能少的步骤中达成目的。 OPOA页面因为交互成本降低,而界面效率受内容多少影响比较大,要尽量避免滚动条,偏向于引导式操作。它只显示当前有用的数据,细致引导你的操作,每步操作都可以很快响应,让你达成目的的路径非常精准,不会受到太多多余数据干扰。 或者可以用复杂指令集与精简指令集来类比? 以上是大致的思想,举几个例子来体现它: 1. 当一个表单内容超过一页时,拆分成子窗口或分Tab页,这样一次渲染的组件少,速度也会快。 2. Grid分页LZ已经说过了,另外有个BufferView应该很多人都知道,其实它也有这种理念,它只渲染用户看到的部分,通过滚动条交互来动态修改内容。 一个好的OPOA应该不会同时显示过多组件,也很少会有滚动条,尤其是全局滚动条。 |
|
返回顶楼 | |
发表时间:2011-11-28
clue
说的很有道理!! 重在设计! 原理就是那么多,以最简、最快、最小的代码实现最稳定的功能,最新最流行的技术不一定适合你的需求! |
|
返回顶楼 | |