Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从异步加载的js文件异步加载js文件_Javascript_Jquery_Asynchronous_Loading - Fatal编程技术网

Javascript 从异步加载的js文件异步加载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而不是通过脚本标记在页面上异

我在页面上通过脚本标签插入了一个javascript文件(initial.js),如下所示:

<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
中同步加载,那么加载顺序应该没有问题。我想重要的是那些剧本的内容——你能给我们看看吗?