当前位置: 代码迷 >> Web前端 >> 议论Ext项目的性能优化
  详细解决方案

议论Ext项目的性能优化

热度:235   发布时间:2012-11-07 09:56:10.0
讨论Ext项目的性能优化

现在开发的项目用了Ext+Dwr,页面初始化的时间比较长(我的项目左边是树,右边使用tabPanel引入iframe),有什么优化方法呢?

?

整理各位大侠的意见如下:

方法一:

压缩传输,比如tomcat6下面启用gzip,修改server.xml的配置:
<Connector port="8081" protocol="HTTP/1.1" maxThreads="150"?
? compression="on"
? noCompressionUserAgents="gozilla, traviata"?
? compressableMimeType="text/html,text/xml,text/javascript,text/css"
? connectionTimeout="20000" redirectPort="8443" URIEncoding="GBK"/>

?

一篇介绍Gzip的文章:http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/? 不错!

??

一篇介绍iframe直接使用父页面的js和css技术的文章:http://matthew.delmarters.com/weblog/injecting-javascript-and-css-into-iframes/#comment-64462?不是很明白!

?

当然还有其他的一些压缩工具:比如E3压缩。

?

方法二:

项目中Ext代码优化。

1. 不推荐使用iframe加载的方式,使用autoload。

2. 在完成了组件对象的使用以后必须回收,可以使用对应对象的destroy,beforeDestroy,removeAll等方法销毁对象以及一些孤立节点。

3. 不要把继承层次弄的太深。

。。。

50 楼 cats_tiger 2008-11-27  
我们在互联网上跑一个OA,用EXT,apache做gizp,打开了cache-control,页面渲染的速度很快,没有发现任何慢的情况。每次grid加载30条数据(10~25列),性能还是不错的。
51 楼 icewubin 2008-11-28  
cats_tiger 写道
我们在互联网上跑一个OA,用EXT,apache做gizp,打开了cache-control,页面渲染的速度很快,没有发现任何慢的情况。每次grid加载30条数据(10~25列),性能还是不错的。


你把这个grid设成加载数据时mask,同时找台P4 1.5用IE测测看,就知道慢了。
52 楼 fins 2008-11-28  
在ext官方论坛上讨论ext性能的帖子多吗???
53 楼 icewubin 2008-11-28  
fins 写道
在ext官方论坛上讨论ext性能的帖子多吗???


国内讨论EXT有两种:
1.以讹传讹认为EXT体积庞大的。

2.瞎设计页面组件,错误估计EXT的渲染性能。

3.中国特色啊,总有些很差的机器,还非得跑IE。

说到硬件问题,岔出去说个真实的事情。
我们碰到一客户很有意思,她上了年纪,非得要在17寸液晶上跑800×600的分辨率,我们怎么和她解释她都不同意,硬说我们的产品不支持800×600,后来总监说,900元买个19寸液晶送给她,跑1024×768的分辨率,看她还有没有意见。
54 楼 elstage 2008-12-01  
大家有没有担心Ext2.2以后商用要收费了?
55 楼 icewubin 2008-12-01  
elstage 写道
大家有没有担心Ext2.2以后商用要收费了?

QT不也是类似的收费,还不是用的人很多。
56 楼 shevliu 2008-12-04  
icewubin 写道
shevliu 写道
EXT在企业应用中,体积应该不成问题。
局域网传输很快,况且有缓存。

令人头疼就是加载速度
就一个普通页面:一棵树,一个20条数据的grid,再加几个form。在奔四,512内存的机器上居然需要3-5秒的加载时间,CPU占用率100%。很是郁闷

P4 频率多少?


大概2.4G
57 楼 icewubin 2008-12-04  
shevliu 写道
icewubin 写道
shevliu 写道
EXT在企业应用中,体积应该不成问题。
局域网传输很快,况且有缓存。

令人头疼就是加载速度
就一个普通页面:一棵树,一个20条数据的grid,再加几个form。在奔四,512内存的机器上居然需要3-5秒的加载时间,CPU占用率100%。很是郁闷

P4 频率多少?


大概2.4G

那基本可以确定是代码设计不合理或者其他外在因素造成的,就这点EXT元素P4 2.4G不可能连续消耗3-5秒的100%的CPU。
58 楼 taelons 2008-12-05  
<div class='quote_title'>用n个iframe等于开n个browser窗口</div>
<p>?</p>
59 楼 icewubin 2008-12-06  
<div class='quote_title'>taelons 写道</div>
<div class='quote_div'>
<div class='quote_title'>用n个iframe等于开n个browser窗口</div>
<p>?</p>
</div>
<p><br/>是啊,很正常啊,好比我用IE或傲游开n个淘宝的窗口消耗的资源一样。</p>
60 楼 shevliu 2008-12-15  
icewubin 写道
shevliu 写道
icewubin 写道
shevliu 写道
EXT在企业应用中,体积应该不成问题。
局域网传输很快,况且有缓存。

令人头疼就是加载速度
就一个普通页面:一棵树,一个20条数据的grid,再加几个form。在奔四,512内存的机器上居然需要3-5秒的加载时间,CPU占用率100%。很是郁闷

P4 频率多少?


大概2.4G

那基本可以确定是代码设计不合理或者其他外在因素造成的,就这点EXT元素P4 2.4G不可能连续消耗3-5秒的100%的CPU。


发现这么个情况:
两台几乎一样配置的客户机,操作系统也一样,网络环境也一样,但表现差异很大。
机器A打开一个页面花费时间很长,至少好几秒
机器B快很多
初步看了一下浏览器版本,机器A是IE6 sp1,机器B是IE6 sp2
不知为何差别如此大
61 楼 icewubin 2008-12-15  
shevliu 写道

发现这么个情况:
两台几乎一样配置的客户机,操作系统也一样,网络环境也一样,但表现差异很大。
机器A打开一个页面花费时间很长,至少好几秒
机器B快很多
初步看了一下浏览器版本,机器A是IE6 sp1,机器B是IE6 sp2
不知为何差别如此大

建议再找一台,或者虚拟机上装一个干净的IE6 sp1做测试,机器A中流氓软件或浏览器不正常的可能性很高。
62 楼 k7710 2008-12-16  
<div class='quote_title'>elstage 写道</div>
<div class='quote_div'>
<p>现在开发的项目用了Ext+Dwr,页面初始化的时间比较长(我的项目左边是树,右边使用tabPanel引入iframe),有什么优化方法呢?</p>
<p>?</p>
<p>整理各位大侠的意见如下:</p>
<p>方法一:</p>
<p>压缩传输,比如tomcat6下面启用gzip,修改server.xml的配置: <br/>&lt;Connector port="8081" protocol="HTTP/1.1" maxThreads="150"? <br/>? <span style='color: #ff0000;'>compression="on" <br/>? noCompressionUserAgents="gozilla, traviata"? <br/>? compressableMimeType="text/html,text/xml,text/javascript,text/css" <br/></span>? connectionTimeout="20000" redirectPort="8443" URIEncoding="GBK"/&gt;</p>
<p>?</p>
<p>一篇介绍Gzip的文章:<a href='http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/'>http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/</a>? 不错!</p>
<p>??</p>
<p>一篇介绍iframe直接使用父页面的js和css技术的文章:<a href='http://matthew.delmarters.com/weblog/injecting-javascript-and-css-into-iframes/#comment-64462'>http://matthew.delmarters.com/weblog/injecting-javascript-and-css-into-iframes/#comment-64462</a>?不是很明白!</p>
<p>?</p>
<p>当然还有其他的一些压缩工具:比如E3压缩。</p>
<p>?</p>
<p>方法二:</p>
<p>项目中Ext代码优化。</p>
<p>1. 不推荐使用iframe加载的方式,使用autoload。</p>
<p>2. 在完成了组件对象的使用以后必须回收,可以使用对应对象的destroy,beforeDestroy,removeAll等方法销毁对象以及一些孤立节点。</p>
<p>3. 不要把继承层次弄的太深。</p>
<p>。。。</p>
</div>
<p>?</p>
63 楼 379548695 2008-12-18  
<p>我用的gzip压缩。是费iframe的。第一次加载如下:<br/><img src='/upload/attachment/60969/78fe240f-0e7c-3210-9801-ef73d5714e17.jpg' alt=''/></p>
<p>?</p>
64 楼 379548695 2008-12-18  
这个是我所有模块点开后达到的最大值


这样好像是最大啊。不会在增加啦。
65 楼 mimijidi 2008-12-30  
哈哈,一个月前很热衷ext,也突破了它的性能瓶颈,也已经摸索出了它的最佳开发方式,但是也现在不喜欢了,因为审美疲劳,现在看ext的界面感觉很丑的,象个浓妆艳抹的姑娘啊
我认为ext的最佳开发方式不是autoload,而是嵌入iframe,当你开发稍大的系统,布局稍复杂的系统就知道autoload的痛,ext类库是让我们用web网页方式开发c/s系统的一大利器,我想这没错吧,它就适合开发一些xx管理系统,好了,你随便下载个美萍的xx管理系统,看看如何用ext来autoload那样的界面。

当然如果用iframe代替autoload,势必造成ext类库重复加载的一大问题,没错,这很容易,拦截ext类库js,设置缓存响应,让客户缓存extjs就好了咯,说白了,就是客户端接收到的是http 203响应,而不是200,哈哈
66 楼 wangchunfei 2009-02-14  
我也觉得,使用autoload加载,稍微复杂点布局和处理的,使用autoload做不了。
67 楼 allaneiaaa 2009-02-15  
mimijidi 写道
哈哈,一个月前很热衷ext,也突破了它的性能瓶颈,也已经摸索出了它的最佳开发方式,但是也现在不喜欢了,因为审美疲劳,现在看ext的界面感觉很丑的,象个浓妆艳抹的姑娘啊
我认为ext的最佳开发方式不是autoload,而是嵌入iframe,当你开发稍大的系统,布局稍复杂的系统就知道autoload的痛,ext类库是让我们用web网页方式开发c/s系统的一大利器,我想这没错吧,它就适合开发一些xx管理系统,好了,你随便下载个美萍的xx管理系统,看看如何用ext来autoload那样的界面。

当然如果用iframe代替autoload,势必造成ext类库重复加载的一大问题,没错,这很容易,拦截ext类库js,设置缓存响应,让客户缓存extjs就好了咯,说白了,就是客户端接收到的是http 203响应,而不是200,哈哈


精辟二字送给你
68 楼 zhongli 2009-02-18  
严重同意,iframe对系统扩展也方便。设置响应代码点子还没用过,压缩后已经比较小了,目前就是前端渲染比较耗资源
69 楼 kebo 2009-02-23  
iframe不好共享ext对象吧
  相关解决方案