JavaScript 延迟函数

标签 javascript jquery html asynchronous deferred

我一直在研究 JavaScript,尝试获取一些代码来异步加载

我找到了这个代码示例

<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>

来自http://www.feedthebot.com/pagespeed/defer-loading-javascript.html

问题是它并没有完全达到我想要实现的目标。我希望能够做类似的事情,但设置一个延迟函数或某种类型的函数,在全部加载后调用。那可能吗?如果是这样,有人可以帮忙解释一下吗?

最佳答案

您可以尝试使用正在加载的script标签的onload事件。请参阅这个问题,例如:Trying to fire the onload event on script tag 。然而,这种机制看起来相当粗略,并且可能不是跨浏览器的。

另一种可能的方法是让正在加载的脚本触发一个可由页面上现有的 javascript 处理的事件。这对于您的特定情况可能有意义,也可能没有意义,并且它要求您控制加载的脚本。

最后,现在 JavaScript 加载很少成为网站的性能瓶颈。那么为什么要尝试动态加载 JavaScript 呢?您可以通过加载其他资源来解决同样的问题吗?通过执行 AJAX 请求?

关于JavaScript 延迟函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26726458/

相关文章:

php - 从 PHP 函数运行调用

javascript - React 高阶元素 - 传递 Prop 可以走多远

jquery - Bootstrap Navbar Logo 在手机上像素化

html - 屏风方 table

jquery - 如何缩短或简化我的 jquery 语句?

javascript - 从输入( radio )中获取值并将它们打印在某个地方...使用 jQuery

html - 网站开发简单

Javascript 数学错误 : Inexact Floats

javascript - 如何验证 HTML 表单?

javascript - react + 助焊剂 : Getting initial state into a store