异步 Javascript 加载不同的行为

Asynchronous Javascript loading different behaviour

提问人:workwise 提问时间:12/8/2012 最后编辑:Brian Tompsett - 汤莱恩workwise 更新时间:10/30/2019 访问量:416

问:

我正在开发一个小部件,并且正在使用 extJS 框架(以及 stomp、orbited 服务器)。它需要 5 个不同的 Javascript 文件。为了避免影响用户的加载时间,我正在尝试异步加载它们。

通过一些回调堆栈,我设法按照需要的顺序异步加载它们。

但是,在异步情况下,小部件根本不起作用。然后,我从 Chrome 的开发人员工具中复制了“修改后”生成的 HTML DOM,并创建了一个静态 HTML 文件。

静态文件有效。在这两种情况下,当加载不同的 JS 文件时,我都会打印很少的警报。这些警报的顺序是相同的。

如何检测和修复错误。经过大量调试后被难住了。

(链接已删除,因为它们位于生产服务器上。设法检测到问题并找到解决方法 - 请参阅下面的答案 - 保留供任何人参考)。

异步 extjs dom-events unobtrusive-javascript

评论

0赞 lontivero 12/9/2012
这个问题对我来说还不够清楚,你是如何加载文件的?
0赞 workwise 12/9/2012
请查看 final.php 的源代码。它源单个 Js 文件嵌入 .js。此脚本按顺序加载 5 个必需的 JS 文件

答:

0赞 workwise 12/9/2012 #1

问题在于,一旦文档准备就绪,即在异步加载任何其他脚本之前,就会调用 Ext.onReady。

因此,初始化代码未被调用。我设法通过在加载的最后一个 javascript 中调用 Ext.each(“dummy args”, initialization_function, this) 来解决它。这让事情对我有用。