我开发了一个使用JQuery和大量拖放元素的网站,这些元素工作得非常好。尽管如此,在IE9上,当大量的拖放元素动态加载(使用.load())并显示时,浏览器总是会消耗少量CPU(〜10%)(用于刷新?)即使用户没有长时间没有触摸鼠标或在页面上滚动也没有做任何事情。IE9:我的网站上的CPU利用率始终很低
我没有任何计时器,并且Chrome和Safari上的行为是确定的。
这里的环境和我经过我的测试中发现:
语境
在我的主网页,我使用load() function加载用户意见纳入一个div。加载的视图包含多个带有可拖动元素的容器。这些容器是可放置的,并且在每次放置事件之后使用load()函数进行刷新。
- 如果我插入第50个
<br>
标签在我的网页,图形元素不会显示没有在我的网页scroling:我的CPU利用率= 0% - 当我滚动显示只有一半我包含图形元素视图,我的CPU利用率= 10%
- 当显示所有我的图形元素:
- 当减少我窗口大小我的CPU利用率= 20%:根据窗口大小我的CPU利用率下降
任何人都可以解释为什么?给我一个建议?是否由于很多JQuery事件?任何解决方案来窥探我的代码的哪一部分正在占用CPU资源?
欢迎任何建议!
编辑
当我删除所有的JQuery事件在我加载视图(点击,鼠标悬停,...)和所有jQueryUI的元素声明(.draggable(),.droppable())的CPU利用率还在。
但请记住,视图总是使用.load()函数动态加载。仅供参考,我试图用$ .post()加载我的视图。
我今天早上尝试了新的JQuery版本1.8.0和JQueryUI 1.8.22,但这并没有改变任何东西。
有关IE9和JQuery的一些错误。像http://bugs.jquery.com/ticket/9341 ..你使用的是什么版本的jQuery? – ShaunOReilly 2012-08-09 06:08:28
感谢您的回复。我正在使用最后一个:JQuery版本1.7.2 – sdespont 2012-08-09 06:39:59
我最近升级到JQuery 1.8.2和JQuery UI 1.8.24,但问题仍然存在。 – sdespont 2012-11-03 18:21:24