0

好的。我以前从未见过这样的事情,我很困惑......在我正在处理的网站上,有两个 JavaScript 包含。(好吧,还有更多,但问题只有两个)。我们将这些称为A.jsB.js

A.js定义了一个 JavaScript 单例A。同样B.js定义了一个 JavaScript 单例B。该类B依赖于A.

我几乎将所有代码都打包在try { ... } catch { ... }块中,并且在出错时,系统会生成一个 AJAX 请求,通过电子邮件向我发送错误的详细信息。

在我办公室的一个系统(Mac 的 Firefox 3.0)上,我看到了最奇怪的行为。偶尔,也许每隔一两个小时一次,但没有特定的模式,我收到一封来自班级的错误电子邮件B"ReferenceError: A is undefined."

我不知道为什么/如何有时A会不确定。当我查看 apache 日志时,在收到错误期间,客户端正在请求,在请求之前,服务器正在响应(未修改)/A.js/B.js304

我以某种方式怀疑问题是该文件已从客户端缓存中过期,但是服务器没有发送该文件,因此它从未被执行并且A未定义。但这只是一个猜测,我不明白为什么会发生这种情况。如果我猜对了,我该如何解决???

如果它很重要,mod_disk_cache则在服务器上启用,我已禁用它以查看是否导致问题。如果是这样,也许这属于 ServerFault ......

任何建议都非常欢迎!!

4

2 回答 2

0

之后开始调用第一个js函数!页面已加载,通过<body onload="startmyfunction()">或类似方式执行此操作。

于 2009-12-04T18:40:51.410 回答
0

如果您在 Firefox 中安装了 Webdevelopers 工具栏,请激活“禁用缓存”,它对调试有很大帮助。

于 2009-12-04T00:16:58.077 回答