我開發了一個使用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