【问题标题】:How to fix Firefox unresponsive script warning on server side?如何在服务器端修复 Firefox 无响应脚本警告?
【发布时间】:2016-10-18 07:08:51
【问题描述】:

情况:

我有一个用 Java (1500 LOC) 编写并使用 GWT (Google Web Tools) 编译为 javascript 的网站。几周前,我开始在我的网站上观察“警告:无响应的脚本”。在 25 次尝试中,我收到了 22 次弹出警告。

我可以通过清除 Firefox 浏览器缓存来解决此问题。之后我看到警告信息 1 次 / 25 次尝试。

我试图找出造成这种情况的根本原因。这似乎是一个客户端问题。我的客户可能没有看到这一点,因为他们不像我那样经常加载该网站。但是,我觉得他们将来可能会遇到这个问题。我想知道我是否可以在服务器端做些什么来消除/减少无响应脚本警告的发生。

问题:

  1. 我比较了加载网站前后的 Firefox “about:cache”。唯一的区别是每次加载网站时都会在内存中创建一个 43 字节的缓存。这正常吗?
  2. 我认为缓存是为了帮助用户更快地加载网站,在我的情况下会发生什么? (我猜我的网站每次加载时都会生成新的缓存并且不使用旧缓存?)
  3. 既然清除缓存可以解决这个问题,那么如何在用户关闭我的网站时自动清除缓存?
  4. GWT 编译的 javascript 中是否存在问题?网络速度也可能是一个因素吗?
  5. 我还需要检查什么以及解决此问题的潜在解决方案是什么?

【问题讨论】:

  • 你将不得不做一些分析来确定你的应用程序到底挂在哪里。是否在特定请求中?什么功能花费的时间最多?
  • @KevinWorkman 当我看到无响应的脚本警告并单击 Firefox 中的调试脚本时,它显示了 XXX.cache.html 的最后一行(第 12346 行)。该行中没有任何内容,但我猜初始化 UI 字段需要花费大部分时间。我还观察到这只发生在 Firefox 中,而不是 Chrome。我不确定 GWT 是否为不同的浏览器生成不同的 javascript,或者两个浏览器处理 javascript 的方式不同

标签: javascript java firefox caching gwt


【解决方案1】:
  1. 将 FireBug 安装到 Firefox 并查看哪些脚本超时。鉴于这是 GWT,服务器端很可能会出现问题。如果是这样:

  2. 在分析器下运行服务器并查看主机点或瓶颈在哪里。我更喜欢 JProfiler,已经使用了 10 多年了。

【讨论】:

  • 我不相信在服务器端进行繁重的工作会发生这种情况。您能否更具体地说明发生这种情况的页面上发生了什么?是否更新了很多 UI 元素?创建了一个大的柔性表?大量计算?
  • 我怀疑是服务器的问题。即使服务器上的工作需要一些时间,连接仍然是异步的,不应阻塞客户端。您更有可能使用 Java 代码(或者更确切地说是 Javascript,这是编译的结果)使浏览器负担过重。
  • @Knarf 我在这个网站上加载了 100 多个 UI 元素。大多数 UI 元素都有一些 onClick 事件。当我在 Firefox 中看到警告并调试脚本时,它显示了 XXX.cache.html 的最后一行,并且该行中没有任何内容(它是文件的最后一行)。
  • @Akkusativobjekt 这个无响应的脚本警告只出现在 Firefox 中而不出现在 Chrome 中,这有点奇怪。我不确定两个浏览器是否以不同的方式加载 javascipt 或者在 GWT 编译后它们得到了不同的 javascript
  • @Slava Imeshev 你能解释一下如何使用 FireFox 来调试它吗?出现警告时,我可以在 Firefox 调试面板中看到一些内容,但当时 Firebug 控制台中没有任何内容
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-21
  • 2014-03-30
  • 2012-04-16
  • 2020-01-24
  • 1970-01-01
相关资源
最近更新 更多