我们的应用程序在工作中使用ExtJS(Sencha)框架。我对框架的问题是框架输出的HTML数量。
我注意到用户报告的系统区域有很多CSS计算调用。我在Google的Speedtracer中进行了测量,有些页面需要8秒才能加载。 80%的时间专门用于CSS计算。在尝试改变框架的工作方式之前,无论如何都要延迟页面的CSS计算,还是在渲染对象时完成这些计算?
我一直在寻找这样做的方法,也许我的“google-fu”很糟糕,但我还没有找到任何具体的方法来实现这样的目标。
编辑:在与一位同事交谈之后,他指出我在加载任何数据之前调用网格上的.suspendEvents()和之后的.resumeEvents(),这仅仅节省了300ms的加载时间:O这就减少了Firebug检测到的.getStyle调用。我还没有用Google SpeedTracer测试这种差异答案 0 :(得分:3)
如果不确切知道您的应用正在做什么,很难说是什么导致了您的性能问题。 CSS会产生一些影响but not much,当页面呈现时,您的应用中的某些JavaScript更有可能是causing excessive reflows。
stubornella文章摘要(第二个链接)
回流是根据样式规则布置网页中元素的过程。回流在计算上很昂贵,但通常可以在单个回流中绘制静态HTML页面,只要任何后续元素的渲染不会影响已经绘制的元素。可能导致多次回流的事情和一些解决方法:
position: fixed
或position: absolute
元素制作动画,因为它们不会影响任何其他元素table-layout: fixed
答案 1 :(得分:2)
我们一直在努力应对使用extJS的开销 - 虽然框架非常全面,但性能上升(特别是IE6)已经成为一个很大的限制。以下是我们为优化框架而采取的一些步骤:
产生的ext“lite”应该会产生显着的性能提升,特别是在IE6中。尽管Secha团队在每次发布时都在不断改进性能,但加载整个框架的开销太昂贵了,无法忽略。
希望这会有所帮助......
答案 2 :(得分:0)
Smartoptimizer非常棒,您尝试过这些类型的gzip代码压缩类型工具吗?