Rumah  >  Artikel  >  hujung hadapan web  >  js实现延迟加载有几种方式?js延迟加载的六种方式介绍

js实现延迟加载有几种方式?js延迟加载的六种方式介绍

不言
不言asal
2018-08-22 11:37:012542semak imbas

本篇文章给大家带来的内容是关于js实现延迟加载有几种方式?js延迟加载的六种方式介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

JS延迟加载,也就是等页面加载完成之后再加载 JavaScript 文件。  
JS延迟加载有助于提高页面加载速度。
一般的几种方法如下:

defer 属性
async 属性
动态创建DOM方式
使用jQuery的getScript方法
使用setTimeout延迟方法
让JS最后加载

1、defer属性
HTML 4.01 为 3f1c4e4b6b16bbbd69b2ee476dc4f83a标签定义了 defer属性。  
用途:表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕之后再执行。

3f1c4e4b6b16bbbd69b2ee476dc4f83a 元素中设置 defer 属性,等于告诉浏览器立即下载,但延迟执行。

<!DOCTYPE html>
<html>
<head>
    <script src="test1.js" defer="defer"></script>
    <script src="test2.js" defer="defer"></script>
</head>
<body>
<!-- 这里放内容 -->
</body>
</html>

说明:虽然3f1c4e4b6b16bbbd69b2ee476dc4f83a 元素放在了93f0f5c25f18dab9d176bd4f6de5d30e元素中,但包含的脚本将延迟浏览器遇到73a6ac4ed44ffec12cee46588e518a5e标签后再执行。

HTML5规范要求脚本按照它们出现的先后顺序执行。在现实当中,延迟脚本并不一定会按照顺序执行。

defer属性只适用于外部脚本文件。支持 HTML5 的实现会忽略嵌入脚本设置的 defer属性。

2、async属性

HTML5 为 3f1c4e4b6b16bbbd69b2ee476dc4f83a标签定义了 async属性。与defer属性类似,都用于改变处理脚本的行为。同样,只适用于外部脚本文件。  
目的:不让页面等待脚本下载和执行,从而异步加载页面其他内容。

异步脚本一定会在页面 load 事件前执行。  
不能保证脚本会按顺序执行。

<!DOCTYPE html>
<html>
<head>
    <script src="test1.js" async></script>
    <script src="test2.js" async></script>
</head>
<body>
<!-- 这里放内容 -->
</body>
</html>

async和defer一样,都不会阻塞其他资源下载,所以不会影响页面的加载。  
缺点:不能控制加载的顺序

3、动态创建DOM方式

//这些代码应被放置在</body>标签前(接近HTML文件的底部)
<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",downloadJAAtOnload);    
        else
        window.onload = downloadJSAtload;</script>

4.使用jQuery的getScript()方法

$.getScript("outer.js",function(){  
//回调函数,成功获取文件后执行的函数
    console.log("脚本加载完成")
});

5.使用setTimeout延迟方法

6.让JS最后加载

相关推荐:

延迟加载JavaScript

Javascript中关于图片的延迟加载详解

JavaScript图像延迟加载库Echo.js_javascript技巧

Atas ialah kandungan terperinci js实现延迟加载有几种方式?js延迟加载的六种方式介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn