ExtJS的效率问题

由于ExtJS的GridPanel在分页状态下只能对当前页面按列排序,为了方便排序一时偷懒就把PagingToolbar给去掉了

压力测试时,发现当GridPanel包含1000条纪录时,整个界面的反应速度都非常慢,有时延迟甚至达到17秒。

开始以为是因为数据传输过大导致的延迟,之后又发现即使只是打开没有任何传输的界面仍然会有很长时间的延迟,已经可以确认是页面的问题了。

其实想想也是,ExtJS只是通过js动态的把HTML的tag依次加入到原有的DOM树中,当有1000条纪录的GridPanel存在时,可以想见当前浏览器中要处理的DOM树何其的庞大,效率瓶颈是必然的,何况处理如此庞大数据的还是js这种脚本弱语言。只不过一般情况下,ExtJS类似桌面程序的样子容易让我们想当然的认为效率不是问题。

可惜的是这段代码是基于ActiveX技术的实现,否则倒是可以测试一下三大浏览器在js处理问题上分个高下:)

P.S. 理论上,同样的硬件同样的1000条纪录在服务器端生成同样的HTML返回,应该会比在客户端js根据数据解析后生成效率要高。

Leave a Reply

Your email address will not be published. Required fields are marked *