Javascript 从异步加载的js文件异步加载js文件
我在页面上通过脚本标签插入了一个javascript文件(initial.js),如下所示:Javascript 从异步加载的js文件异步加载js文件,javascript,jquery,asynchronous,loading,Javascript,Jquery,Asynchronous,Loading,我在页面上通过脚本标签插入了一个javascript文件(initial.js),如下所示: <script src="initial.js"></script> 该文件创建dom元素(比如两个链接),并通过jQueryAjax方法异步加载另一个jQuery插件(plugin.js)。点击这两个链接将打开jQuery插件(plugin.js)中的一个模块 然后修改javascript文件(initial.js),通过jQueryAjax而不是通过脚本标记在页面上异
<script src="initial.js"></script>
该文件创建dom元素(比如两个链接),并通过jQueryAjax方法异步加载另一个jQuery插件(plugin.js)。点击这两个链接将打开jQuery插件(plugin.js)中的一个模块
然后修改javascript文件(initial.js),通过jQueryAjax而不是通过脚本标记在页面上异步加载。这导致一些事件没有间歇性地连接到链接,这导致插件没有被调用
我相信浏览器正在按自己的顺序加载异步脚本,因此链接无法间歇性地启动插件。有什么建议可以用这个新设置来解决这个问题吗?在高层,我认为您需要研究以下内容。或者,您可以查看一些jQuery事件处理代码,这些代码允许您监听调用的加载事件,这可能有助于您在加载下一个脚本之前确定何时加载一个脚本。您过去可能尝试过类似的操作:
var output;
$.get('data.php',function(data){
output=data;
});
alert(output);
您将得到一个未定义的错误,因为Javascript不会等待AJAX调用返回,然后再继续下一个代码
脚本也是如此。如果您对多个脚本进行多个调用,您可能会得到最小的一个最快的返回,并执行该脚本。如果加载一个10kb的脚本,然后加载一个1kb的脚本,则1kb脚本可能会返回最快的脚本,然后执行,即使它是在10kb脚本之后调用的
要更正此问题,您可以创建一个队列系统,然后仅在前一个脚本加载后加载每个脚本:
var scripts=['script1.js','script2.js','script3.js'];
$(document).ready(function(){
loadScript();
});
function loadScript(){
if(sendQueue.length==0)
return;
$.getScript(scripts[0],function(){
scripts=scripts.slice(1);
loadScript();
});
}
但是如果您是从脚本中从脚本中加载脚本。。。非常像《盗梦空间》,那么这可能仍然不起作用。如果插件已经从
initial.js
中同步加载,那么加载顺序应该没有问题。我想重要的是那些剧本的内容——你能给我们看看吗?