2010-04-29 69 views
2

當我將mousemove事件綁定到某個元素時,它與除Internet Explorer之外的每個瀏覽器都能夠平穩地工作。 IE使用CPU的方式太多了,一些相關的東西(例如工具提示)很難看。有什麼辦法可以擺脫性能問題嗎? (是的,我知道,不要使用IE :))jQuery mousemove性能

更新:即使我沒有在事件處理函數中做任何事,CPU使用率仍然很高。這裏是我的代碼:

$("#container").live("mousemove", function(e){ 

}); 

這是正常的嗎?

+0

你在做什麼'mousemove'?答案很大程度上取決於此。 – 2010-04-29 17:00:58

+0

我設置了一個工具提示的左側和頂部位置。但即使我沒有做任何事情,CPU使用率仍然很高。 – Colby77 2010-04-29 17:06:02

+0

什麼版本的jQuery?爲什麼你會問這樣的問題而不提供任何代碼?你認爲我們是讀心術的魔術師嗎?問題可能是99.9%與您的事件處理程序相關,而不是IE。 – 2010-04-29 17:24:50

回答

0

即使在IE中,將鼠標移動事件綁定到簡單更新也沒有問題。正如最近在gazillion網站中所看到的,拖放是完全按照這種方式實現的。

如果你看到CPU的巨大峯值,我會考慮也許有一個更大的潛在原因。

2

你是否在mousemove事件中使用jquery選擇器?我已經看到了jquery選擇器在複雜頁面中減速的情況,如果您將選擇器放在多次觸發的事件中,則會有明顯的滯後。在許多情況下,您可以在mousemove之前將jquery引用存儲到元素,然後mousemove使用元素引用,而不是再次使用內部在每次調用DOM時都重新遍歷DOM的選擇器。