2009-12-16 13 views
9

我想在瀏覽器中對一些Javascript代碼進行基準測試,但它可能會觸發Firefox的「Warning:Unresponsive script」彈出窗口。這允許用戶在瀏覽器陷入失控功能的情況下點擊「停止腳本」。顯示彈出窗口時,當前正在運行的功能已停止。這並不理想,那麼是否有辦法以不同的方式運行我的基準測試,以便Firefox不會彈出此警告並破壞我的結果?如何避免長時間運行Javascript的Firefox中的無響應腳本彈出窗口?

回答

11

在關於Firefox的地址欄中輸入:配置

你想改變dom.max_script_run_time到足夠大,你的腳本運行。

+7

他應該爲頁面的每個用戶都這樣做嗎? – Oded 2009-12-16 20:22:59

+7

他使用它進行基準測試 - 我不認爲有其他用戶。 – Annie 2009-12-16 20:23:39

9

你必須將長時間的行爲分解爲更小的行爲並輪流執行。這也可以提供更好的進展指示。

http://www.sonofsofaman.com/hobbies/code/settimeout.asp

+2

你能詳細點嗎?一個簡單的例子,也許? – spoulson 2009-12-16 20:25:05

+0

下面是使用setTimeout分解javascript運行的示例:http://www.sonofsofaman.com/hobbies/code/settimeout.asp 如果您正在進行基準測試,請確保允許代碼運行足夠長的時間以彌補定時器分辨率。你可能會想讀這個:http://ejohn.org/blog/accuracy-of-javascript-time/ – Annie 2009-12-16 20:31:08

+0

該鏈接似乎被打破。你能否詳細說明如何在你的答案中做到這一點? – Chris 2016-10-07 07:31:15

0

下面的代碼解決了這個問題,我的方式。 ..

<script type="text/javascript"> 
    function downloadJSAtOnload() { 
    var element = document.createElement("script"); 
    element.src = "deferredfunctions.js"; 
    document.body.appendChild(element); 
    } 
    if (window.addEventListener) 
    window.addEventListener("load", downloadJSAtOnload, false); 
    else if (window.attachEvent) 
    window.attachEvent("onload", downloadJSAtOnload); 
    else window.onload = downloadJSAtOnload; 
</script> 
相關問題