什么是随机Javascript错误?

时间:2010-04-13 16:48:04

标签: javascript

我正在使用javascript和jquery开发一个网站。有时当我刷新时,我只会在firebug中得到不同的随机错误。这是什么交易?

编辑:我收到的错误就像变量未定义,当它显然正常工作时,当我再次刷新时,错误消失了..

使用Firefox V3.5.5 Firebug V.1.5.3,我主要使用jQuery 1.4.2

2 个答案:

答案 0 :(得分:3)

行。虽然或多或少不可能给出这样一般性问题的合理解决方案,但我只需加上2美分的价值:

“未定义变量”错误的一个可能来源是包含多个脚本,这些脚本可能或可能不会始终以相同的顺序加载和执行。如果您在一个脚本中定义变量(让我们调用该脚本declare.js)并在另一个脚本中使用它(比如说use.js),use.jsdeclare.js之前执行,那么你会得到这样的错误。如果脚本执行相反的操作,一切都会正常显示。

如果您对此主题感兴趣,请查看例如:史蒂夫·索德斯的书 Even faster web sites ,由O'Reilly出版。更具体地说,请查看有关非阻塞脚本加载的章节。

答案 1 :(得分:1)

最常见的原因是你在加载DOM之前尝试执行Javascript ,因此在DOM树中所有HTML元素都可用之前,这反过来可能导致像{这样的简单调用{1}}和jQuery的document.getElementById(id)可能会返回未定义的元素。它有时有效是纯粹的巧合和时间问题。

您需要确保在页面加载期间应该执行的任何Javascript / jQuery代码依赖于DOM树中元素的可用性,在 DOM之后也确实执行了加载。在普通的香草JS中你可以这样做:

$(selector)

并在jQuery中:

window.onload = function() {
    document.getElementById(someId);
}