我使用的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