确定。我以前从未见过这样的东西,我很困惑......在我正在研究的网站上,有两个JavaScript包含。 (好吧,还有更多,但问题只发生在两个)。我们会将这些称为A.js
和B.js
。
A.js
定义了JavaScript单例A
。同样,B.js
定义了JavaScript单例B
。 B
类取决于A
的方法。
我的几乎所有代码都包含在try { ... } catch { ... }
块中,如果出错,系统会生成一个AJAX请求,通过电子邮件向我发送错误的详细信息。
在我办公室的一个系统上(Firefox 3.0 for Mac)我看到了最奇怪的行为。有一段时间,也许每隔一两个小时,但没有特定的模式,我收到来自班级B
的错误电子邮件:"ReferenceError: A is undefined."
我不知道为什么/如何A
未定义有时。当我查看apache日志时,在收到错误的时间内,客户端请求/A.js
,然后请求/B.js
,并且服务器正在响应304
(未修改)
我不知何故怀疑问题是文件已从客户端缓存过期,但是服务器没有发送文件因此它永远不会被执行而A
未定义。但这只是猜测,我不明白为什么会发生这种情况。如果我猜对了,我该如何解决?
如果重要,则在服务器上启用了mod_disk_cache
,并且我已将其禁用以查看是否导致问题。如果是这样,也许这属于ServerFault ......
任何建议都非常欢迎!!
答案 0 :(得分:0)
如果您在Firefox中安装了Webdevelopers工具栏,请激活“禁用缓存”,这对调试有很大帮助。
答案 1 :(得分:0)
开始在之后调用第一个js函数!页面已加载,请按<body onload="startmyfunction()">
或类似方式执行此操作。