Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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
延迟加载用于google页面洞察的javascript_Javascript_Jquery_Onload_Deferred - Fatal编程技术网

延迟加载用于google页面洞察的javascript

延迟加载用于google页面洞察的javascript,javascript,jquery,onload,deferred,Javascript,Jquery,Onload,Deferred,我有一个延迟加载javascript的代码,我想知道代码是否会根据脚本在代码中的位置按顺序加载脚本(JQuery.minfirst) function downloadJSAtOnload() { var element01 = document.createElement("script"); element01.src = "js/jquery.min.js"; document.body.appendChild(element01); var element02 = document

我有一个延迟加载javascript的代码,我想知道代码是否会根据脚本在代码中的位置按顺序加载脚本(
JQuery.min
first)

function downloadJSAtOnload() {


var element01 = document.createElement("script");
element01.src = "js/jquery.min.js";
document.body.appendChild(element01);

var element02 = document.createElement("script");
element02.src = "js/plugins.js";
document.body.appendChild(element02);

var element03 = document.createElement("script");
element03.src = "js/scripts.js";
document.body.appendChild(element03);


var element04 = document.createElement("script");
element04.src = "js/SmoothScroll.min.js";
document.body.appendChild(element04);

var element05 = document.createElement("script");
element05.src = "js/contact-form.js";
document.body.appendChild(element05);

}

if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
如果不先加载
JQuery.min
然后再加载其他js文件,那么如何使JQuery.min成为要加载的第一个脚本,然后加载其余脚本? 此外,我猜测,例如,
contact form.js
将是第一批完成加载的文件之一,因为它很小,因此可能会导致
Uncaught ReferenceError:$未定义
我猜测,因为JQuery.min尚未完成下载,所以您如何解决这个问题?我猜是一个侦听器/如果加载完毕,请加载其他人等待。。。
提前谢谢

这很快,但我认为它应该会起作用

function downloadJSAtOnload() {
    var element01 = document.createElement("script");
    element01.src = "js/jquery.min.js";
    document.body.appendChild(element01);

    element01.onload = function() {
        var element02 = document.createElement("script");
        element02.src = "js/plugins.js";
        document.body.appendChild(element02);

        var element03 = document.createElement("script");
        element03.src = "js/scripts.js";
        document.body.appendChild(element03);


        var element04 = document.createElement("script");
        element04.src = "js/SmoothScroll.min.js";
        document.body.appendChild(element04);

        var element05 = document.createElement("script");
        element05.src = "js/contact-form.js";
        document.body.appendChild(element05);
    }
}

这很快,但我认为应该有效

function downloadJSAtOnload() {
    var element01 = document.createElement("script");
    element01.src = "js/jquery.min.js";
    document.body.appendChild(element01);

    element01.onload = function() {
        var element02 = document.createElement("script");
        element02.src = "js/plugins.js";
        document.body.appendChild(element02);

        var element03 = document.createElement("script");
        element03.src = "js/scripts.js";
        document.body.appendChild(element03);


        var element04 = document.createElement("script");
        element04.src = "js/SmoothScroll.min.js";
        document.body.appendChild(element04);

        var element05 = document.createElement("script");
        element05.src = "js/contact-form.js";
        document.body.appendChild(element05);
    }
}
在这里找到

在这里找到



你是对的,你是按顺序给他们打电话的,你不能肯定他们会按同样的顺序回来。回调或承诺可以解决这个问题。你能用承诺加载jquery.min,然后再加载其余的吗?我会调查这个我对承诺几乎一无所知幸运的是,我也不知道,但他们做同步事情的能力似乎适合你的需要你是对的,你是按顺序打电话给他们的。你不能肯定他们会按同样的顺序回来。回调或承诺可以解决这个问题。你能用一个承诺加载jquery.min,然后在加载的解决方案上加载其余的吗?我将对此进行研究,我对承诺几乎一无所知幸运的是,我也不知道,但是他们做同步事情的能力似乎很适合你的需要。我正在努力满足谷歌的页面洞察/我网站文件上的折叠,因此正在寻找一个加载jquery.min.js的解决方案,同时也可以消除网站上的上述折叠警告file@Neths所以您希望能够加载jquery.min.js,并在完全加载后加载其余的?这能解决你的问题吗?我想这是因为如果juqery.min.js首先被完全加载,它不会抛出$is not defined错误这会抛出未被捕获的语法错误:输入的意外结束我试图满足Google页面的洞察/在我的站点文件的折叠之上,所以寻找一个加载jquery.min.js并摆脱的解决方案在上面的折叠警告中file@Neths那么,您希望能够加载jquery.min.js,并在它完全加载后再加载其余的?这能解决您的问题吗?我想这是因为如果juqery.min.js首先被完全加载,它不会抛出$is not defined错误这会抛出未捕获的语法错误:输入的意外结束这看起来不错,但脚本是否必须附加到头部?为什么不在结束正文标签之后呢?使用承诺的代码是否可以跨浏览器工作?另一个小问题是,如果完整呈现(加载时)花费的时间太长,而不仅仅是第一次呈现,谷歌可能会惩罚页面加载。此代码是否会侵犯本机onload?这将是一个令人惊奇的解决方案,只是想知道它是否有效以及如何工作。@ptts我认为它不应该被附加到哪里。根据这一点,它是跨浏览器兼容的W,这是伟大的,然后。但是,链接中的哪一个回复是有效的?如果我阅读了所有的答案,会有一些争议。我看了去年12月最新的一个,我假设我使用var element05=document.createElement(“脚本”);等等,这里使用jQuery的//代码在哪里?与纯javascript相比,这种方法有什么缺点吗?这看起来不错,但是脚本必须附加到头部吗?为什么不在结束正文标签之后呢?使用承诺的代码是否可以跨浏览器工作?另一个小问题是,如果完整呈现(加载时)花费的时间太长,而不仅仅是第一次呈现,谷歌可能会惩罚页面加载。此代码是否会侵犯本机onload?这将是一个令人惊奇的解决方案,只是想知道它是否有效以及如何工作。@ptts我认为它不应该被附加到哪里。根据这一点,它是跨浏览器兼容的W,这是伟大的,然后。但是,链接中的哪一个回复是有效的?如果我阅读了所有的答案,会有一些争议。我看了去年12月最新的一个,我假设我使用var element05=document.createElement(“脚本”);etc etc这里使用jQuery的//代码也是如此,与纯javascript相比,这种方法有什么缺点吗?