繁体   English   中英

推迟js的有效方法

[英]Efficient way to defer js

我打算调用一个js,它在加载页面时不会使用任何东西。 因此,我只需要在整个页面加载完毕后调用这个js,以免耽误任何事情或为用户加载屏幕。

<html>
    <body>
    <script type="text/javascript" defer=defer src="function.js"></script>
    <script type="text/javascript">
            function downloadJSAtOnload() {
                var element = document.createElement("script");
                element.src = "function.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> 
    </body>
    </html>

我的问题是:在上述方式中,哪一种更有效? 我需要减少页面的加载时间,因此我想“推迟”所有不必要的事情。

“defer”关键字延迟脚本的加载,直到触发 DOMContentLoaded 事件。

来自Mozilla 开发者中心

DOMContentLoaded 事件在文档完全加载和解析后触发,无需等待样式表、图像和子框架完成加载(加载事件可用于检测完全加载的页面)。

这意味着版本 1(延迟)可能会比版本 2 更早地开始加载脚本,同时仍保持加载效率。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM