当我使用缩小版本(ext-all.js
)时,一切都很好但是当我用ext-all-debug.js
替换它(其他一切都完好无损)时,firebug报告由于未定义的值而导致的各种错误> know 在我在Ext。
经过一些试验和错误,我将console.log()
放在几个js文件的末尾,没有出现。我认为使用ext-all-debug.js
以某种方式导致<BODY></BODY>
中的js代码在 <HEAD>
中的脚本完全加载之前执行,这会导致“未定义”错误因为<BODY>
中的代码引用了应该预先加载的值。
对吧?
<HEAD>
<SCRIPT type="text/javascript" src="ext/ext-base.js"></SCRIPT>
<SCRIPT type="text/javascript" src="ext/ext-all-debug.js"></SCRIPT>
<SCRIPT type="text/javascript" src="my_lib.js"></SCRIPT> <!-- defines myValue -->
</HEAD>
<BODY>
<SCRIPT type="text/javascript">
console.log(myValue) // undefined
</SCRIPT>
</BODY>
这里是my_lib.js
var myValue = 10;
console.log("my_lib.js loaded");
并且
my_lib.js已加载
未显示在控制台中。
答案 0 :(得分:2)
只要脚本未标记为延迟或异步或动态加载,它们将按照HTML文件中遇到的顺序执行。这是规范的一部分,所以它是有保证的。
如果您认为myValue
在早期脚本中定义了undefined
未定义,那么还有其他一些问题。
一些可能性是:
如果您可以向我们展示显示问题的工作/非工作页面,我们很可能会很快发现问题。由于现在没有显示问题的样本页面,我们只能推测可能的原因。
答案 1 :(得分:0)
我明白了。看来(我的)ext-all-debug.js
是错误的。在PhpStorm中检查后,我发现了很少的语法错误并修复了它们。现在一切都很好。