好的,所以我正在编写一个失败的复杂ASP.NET页面,它有很多与之相关的javascript。问题是该页面已经很多了,但浏览器只是行动反应迟了很多时间和滞后,而javascript似乎表现良好。
在此页面中,我发送可供选择项目的数组列表供用户选择。好吧,当这个列表变得像列表中的1000多个项目一样,页面只是因为缺乏更好的单词而糟透了。如果我没有从页面中选择那么多项目就可以了。我的意思是javascript性能还可以,但页面只是滞后。页面上的滚动条只是滞后,它只是感觉很可怕。当然,这些都不会发生在Chrome或Firefox中。
为了让您对此问题有更多的了解,该网站为此页面提供了大约150k个未明确的解压缩css样式,js的约10,000行代码,包括特定于页面的框架,控件和业务规则,以及保存到文本文档的数组对象文本大约为200kb。
关于这个问题的任何帮助都会受到很大的限制,因为这是关于我加快这个速度的第5个月......
答案 0 :(得分:1)
其中一个Yahoo performance rules是“减少DOM元素的数量”。他们说这是有原因的。
当你开始进入“数千”DOM元素的范围时,IE很快陷入困境。与页面的每次交互都变得缓慢。唯一的“解决方案”是使用更少的DOM元素。
例如,我最近创建了一个包含4个网格的网络应用程序,每个网格包含100行,每行约10列,所有这些都可以同时显示。那些4000个细胞让IE变得非常慢。我通过使用缓冲视图网格解决了这个问题,该网格仅渲染可见行,并从DOM中移除可见滚动区域外的行(如果您感兴趣,请使用ExtJS网格)。
答案 1 :(得分:0)
当然,这些都不会发生在Chrome或Firefox中。
一旦事情变得令人敬畏,我的小网络应用程序开发人员的祸根就存在了。除了简化页面之外,通常没有答案。
分页背后的概念适用于其他应用程序。一旦它很大,Active Directory就不会在单个列表中显示每条记录 - 而且它是一个桌面应用程序。
将其剪切回来,然后使用界面逐步获取内容(通常通过JSON请求)。