我已经使用 JQuery 和许多运行良好的拖放元素开发了一个网站。
然而,在 IE9 上,当大量拖放元素被动态加载(使用 .load())并显示时,浏览器总是消耗少量 CPU(~10%)(用于刷新?),即使什么都没有由用户长时间不触摸鼠标或滚动页面完成。
我没有任何计时器,Chrome 和 Safari 上的行为还可以。
这是上下文以及我在测试后发现的内容:
语境
在我的主网页中,我使用load() 函数将用户视图加载到 div 中。加载的视图包含几个带有可拖动元素的容器。这些容器是可放置的,并且在每次放置事件后使用 load() 函数进行刷新。
<br>
如果我首先在我的网页中插入 50 个标签,则在我的页面中不滚动就不会显示图形元素:我的 CPU 利用率 = 0%- 当我滚动以仅显示包含图形元素的一半视图时,我的 CPU 利用率 = 10%
- 当显示我的所有图形元素时:我的 CPU 利用率 = 20%
- 当我减小窗口大小时:我的 CPU 利用率根据窗口大小而降低
任何人都可以解释为什么?给我一个建议?是因为很多 JQuery 事件吗?有什么解决方案可以监视我的代码的哪一部分占用了 CPU 资源?
欢迎任何建议!
编辑
当我删除加载视图中的所有 JQuery 事件(单击、鼠标悬停...)和所有 JQueryUI 元素声明(.draggable()、.droppable())时,CPU 利用率仍然存在。
但请记住,视图始终使用 .load() 函数动态加载。仅供参考,我也尝试使用 $.post() 加载我的视图。
我今天早上尝试使用新的 JQuery 版本 1.8.0 和 JQueryUI 1.8.22,但这并没有改变任何东西。