我使用的eval()在javascript來評價的JS代碼顯著量(不只是JSON,但的函數調用)。在通話期間瀏覽器凍結,即用戶不能滾動瀏覽器或點擊任何內容。有沒有辦法解決這個凍結問題?瀏覽器凍結()
瀏覽器凍結()
回答
在大多數瀏覽器的JavaScript運行在UI線程上,所以它會阻止用戶界面爲你描述。要取消阻止的UI是給JS分解成更小的部分,並與setTimeout的把它們串起來(這給線程的控制權交還給瀏覽器UI渲染)的最佳方式
你要打破你功能分成較小的部分。我建議將它們與setTimeout
結合起來。
在現代瀏覽器中有web workers,可以計算在後臺的數據。
在setTimeout內的每行代碼之後,UI呈現是否恢復? 時候,說,加載初始頁面時,瀏覽器中執行了大量的JavaScript爲什麼不結冰發生呢? – 2010-01-04 23:11:34
這取決於瀏覽器。我相信只有當它是a)最大化CPU時,UI纔會凍結b)javascript操縱HTML/CSS。你應該做自己的測試,我沒有任何數據支持我的說法。 – 2010-01-04 23:15:00
加載初始頁面時執行JavaScript時,UI *會阻止*。大多數JavaScript並不需要那麼長時間,所以希望你不會注意到它。 – bobince 2010-01-04 23:43:56
您也可以嘗試通過注入新的腳本到頁面執行代碼:
function executeCode(code) {
var element = document.createElement('script');
element.type = 'text/javascript';
try {
element.appendChild(document.createTextNode(code));
document.body.appendChild(element);
}
catch (e) {
element.text = code;
document.body.appendChild(element);
}
}
var code = 'alert("hello world");';
executeCode(code);
- 1. wp8 C#瀏覽器凍結
- 2. Jquery $ .Ajax凍結瀏覽器
- 3. 多個AJAX請求凍結瀏覽器
- 4. map.fitBounds(bounds)導致瀏覽器凍結
- 5. getusermedia在手機瀏覽器中凍結
- 6. Telerik radcombobox導致Chrome瀏覽器凍結
- 7. javascript快速凍結iOS瀏覽器
- 8. 瀏覽器凍結了幾秒鐘
- 9. JS導致瀏覽器凍結
- 10. 嵌入式視頻凍結瀏覽器
- 11. Javascript - SetTimeout導致瀏覽器凍結
- 12. Javascript代碼凍結瀏覽器
- 13. UIWebview在瀏覽時凍結?
- 14. c#Web瀏覽器保持凍結,但常規的IE9瀏覽器不會
- 15. css到json解析器凍結瀏覽器窗口
- 16. Javascript:防止瀏覽器在調用服務器時被凍結
- 17. 導入圖像凍結,而瀏覽器是忙
- 18. 瀏覽器凍結,因爲jquery克隆多個div
- 19. jquery腳本凍結瀏覽器,但工作
- 20. JavaScript「while」循環沒有凍結瀏覽器?
- 21. JS正則表達式凍結我的瀏覽器(S)
- 22. 運行此代碼時Javascript正在凍結瀏覽器
- 23. 使用highcharts創建大型熱圖凍結瀏覽器
- 24. Meteorjs基金會模態事件凍結瀏覽器
- 25. 爲什麼「if」語句導致「while」循環凍結瀏覽器?
- 26. Mootools:發送請求時如何阻止瀏覽器凍結
- 27. 回聲大量的HTML沒有凍結瀏覽器
- 28. 阿賈克斯聊天頁面凍結瀏覽器窗口
- 29. jquery驗證不工作,瀏覽器凍結
- 30. Javascript for-loop凍結了瀏覽器,沒有語法錯誤
你將不得不放棄比這更詳細。哪個瀏覽器?你的代碼是什麼樣的? – 2010-01-04 22:53:42