Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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
Javascript 延迟js的有效方法_Javascript_Jquery - Fatal编程技术网

Javascript 延迟js的有效方法

Javascript 延迟js的有效方法,javascript,jquery,Javascript,Jquery,我打算调用一个js,它在加载页面时不会使用任何东西。因此,我只需要在加载整个页面时调用这个js,这样就不会延迟任何事情或为用户加载屏幕 <html> <body> <script type="text/javascript" defer=defer src="function.js"></script> <script type="text/javascript&quo

我打算调用一个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>

函数downloadJSAtOnload(){
var元素=document.createElement(“脚本”);
element.src=“function.js”;
document.body.appendChild(元素);
}       
if(window.addEventListener)
addEventListener(“加载”,downloadJSAtOnload,false);
else if(窗口附件)
window.attachEvent(“onload”,downloadJSAtOnload);
else window.onload=下载jsatonload;

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

延迟”关键字将推迟脚本加载,直到触发DOMContentLoaded事件

从:

DOMContentLoaded事件在文档已加载时激发 完全加载和解析,无需等待样式表、图像, 以及完成加载的子帧(加载事件可用于检测 完全加载的页面)


这意味着版本1(延迟)可能会在版本2之前开始加载脚本,同时仍然保持加载效率。

这是否回答了您的问题?