java gwt脚本导致浏览器运行缓慢

时间:2013-02-12 13:37:16

标签: java gwt

我有一个用java gwt编写的Web应用程序。在IE8中打开网站时,总会弹出“此页面上的脚本导致您的网络浏览器运行缓慢”的消息 该消息仅出现在IE8中没有更高版本,而不是FF或Chrome!

由于应用程序是用java gwt编写的,因此调试javascript代码非常困难,是否还有另一种可能性来确定问题?

应用程序还有许多异步调用,数据库可能是问题吗?

3 个答案:

答案 0 :(得分:9)

此消息表示JavaScript会阻止浏览器线程很长时间。

它在IE8中的实现真的很傻。它计算它执行的JavaScript行代码(指令)的数量,如果达到某个阈值,则会显示此消息。

实际上这个限制是在Windows注册表中配置的,默认情况下是5000000或类似的。它可以增加,当然不是推荐的解决方案。

避免此消息的一种方法是使用GWT DeferredCommand。如果你可以将正在完成的工作拆分成足够小的块而不是触发IE8防护约束,你就可以了。还尝试将多个异步请求合并到尽可能少的位置并改进渲染逻辑,可能会从Widgets转移到UI Binder或plain DOM。

这是相关问题(Disabling the long-running-script message in Internet Explorer

答案 1 :(得分:1)

我会稍微不同意 - “java gwt很难调试javascript代码”

MSDN article禁用慢速脚本警告只会隐藏问题。

当您进行繁重的for循环或深度递归调用时,会发生慢速脚本警告。这可能发生在两种情况下 -

1) Poorly coded client side processing logic - example tree navigation
2) Deep object graph in rpc.

如果您熟悉

,您可以快速找出问题点

1)使用Speed Tracer - https://developers.google.com/web-toolkit/speedtracer/

2)使用GWT记录 - https://developers.google.com/web-toolkit/doc/latest/DevGuideLogging

3)使用Chrome开发工具& Firebug捕捉时间线,剖析等

4)IE8有分析,但它很慢而且很麻烦。

5)在分析时使用GWT Pretty模式而不是OBF模式。

一旦您确定代码的哪一部分导致慢速脚本警告只是修复它

答案 2 :(得分:0)

由于某些脚本可能需要花费大量时间才能运行,因此Internet Explorer会提示用户决定是否继续运行慢速脚本。

如果生成的Cache.js Javascript文件是大尺寸的消息可能会出现的那些。

因此,Internet Explorer版本4.0,5.0,6,7和8的消息框带有消息

阅读MS博客上的this文章

参考以下问题

a script on this page is causing ie to run slowly