延迟加载用于google页面洞察的javascript
我有一个延迟加载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
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相比,这种方法有什么缺点吗?