2008-11-18 56 views
4

某些東西正在放慢IE6中的JavaScript代碼,以便在懸停時出現顯着的延遲。在FF中沒問題,所以使用螢火蟲不是很有用。有什麼工具可以幫助在IE中進行調試?如何在IE6中的Javascript中查找速度變慢

有點多信息:我不認爲實際上有任何JS運行在我正在移動的對象上。 (至少沒有我輸入。)只是CSS:懸停的東西。另外,我已經在項目中運行了jquery和dojo,所以誰知道他們在後臺做什麼。

回答

4

的那個「東西」可能是什麼只是一個提示...

在IE字符串串聯是(或者至少是在我tested)很慢。 Opera 0.2s後完成,Firefox 4.1s和Internet Explorer 7仍然沒有完成20 分鐘 !!!

不要做:

for (var i=0, i < 200; i++) { s = s + "something";} 

相反,暫時使用一個數組,然後再加入它:

var s=[]; 
for (var i=0; i < 200; i++) s.push("something"); 
s=s.join(""); 
4

我最常做的是:

var startTime = new Date(); 
// Lots of heavy code here 
console.log("Processing time: ", new Date() - startTime, " ms"); 

你可以獲得Firebug lite以使console.log可以跨瀏覽器使用。這給你一個關於你的代碼的任何給定部分需要執行多長時間的想法。

一旦您知道哪些是錯誤的部分,您可以探索修復它的選項。

0

延遲也可能來自DOM更新。當IE由於DOM更改而需要重新呈現頁面時,它可能明顯比Firefox慢。通常情況下,遊標會在這種情況下凍結。

0

鑑於快速firefox和慢IE瀏覽器,XPath表達式和事件處理程序(確保你得到正確的數量的電話,而不是預期的數量的10倍)是手動插入定時器的好地方。