不寻常的JavaScript HTTP缓存/未定义的问题

时间:2009-12-04 00:08:12

标签: javascript caching undefined intermittent

确定。我以前从未见过这样的东西,我很困惑......在我正在研究的网站上,有两个JavaScript包含。 (好吧,还有更多,但问题只发生在两个)。我们会将这些称为A.jsB.js

A.js定义了JavaScript单例A。同样,B.js定义了JavaScript单例BB类取决于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 ......

任何建议都非常欢迎!!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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