3

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

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

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

4

3 回答 3

9

此消息意味着 JavaScript 会长时间阻塞浏览器线程。

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

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

避免此消息的方法之一是使用 GWT DeferredCommand。如果您可以将正在完成的工作拆分为足够小的块而不会触发 IE8 保护约束,那么您会没事的。还尝试将多个异步请求合并为尽可能少的数量并改进渲染逻辑,可能会从 Widget 转移到 UI Binder 或普通 DOM。

这是相关问题(禁用 Internet Explorer 中的长时间运行脚本消息

于 2013-02-12T17:05:06.160 回答
1

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

用于禁用慢速脚本警告的MSDN 文章仅隐藏了该问题。

当您有大量的 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 有 profiling ,但是非常缓慢和麻烦。

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

一旦您确定代码的哪一部分导致了缓慢的脚本警告,只需 FIX it即可。

于 2013-02-12T14:23:40.147 回答
0

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

如果生成的 Cache.js Javascript 文件有些大,则该消息可能会出现。

因此 Internet Explorer 4.0、5.0、6、7 和 8 版的消息框带有一条消息

在 MS 博客上阅读这篇文章

并参考以下问题

此页面上的脚本导致 ie 运行缓慢

于 2013-02-12T13:50:09.450 回答