gpt4 book ai didi

javascript - 可以使用匿名函数来延迟 js 的加载吗?

转载 作者:行者123 更新时间:2023-12-03 12:27:46 25 4
gpt4 key购买 nike

我刚刚读到关于延迟加载 js 的内容。我发现 Particks 文章非常有趣 http://www.feedthebot.com/pagespeed/defer-loading-javascript.html .

我查看了 facebook 和 google 的 js 代码。它们都使用匿名函数,所以我想知道这是否会延迟 js 在页面加载后加载?

 (function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "http://connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

或者帕特里克的建议是在页面加载后真正延迟加载 js 的唯一方法吗?

<script type="text/javascript">
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "defer.js";
document.body.appendChild(element);
}
if (window.addEventListener) window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent) window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>

谢谢,我非常感谢您的专业知识!

最佳答案

Both will download the script asynchronously and defer the execution after it is loaded ,但第二个脚本会等待开始加载脚本,直到加载所有其他资源(包括图像!)(实际上对我来说似乎有点晚了)。

They are all using anonymous functions so I was wondering whether this is deferring js?

不,那些IEFEs仅用于构建代码,它们会立即执行。 defer js是动态创建<script>元素。

关于javascript - 可以使用匿名函数来延迟 js 的加载吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24098522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com