js延迟加载的几种方式

本文介绍了JavaScript延迟加载的六种方法,包括defer属性、async属性、动态创建DOM、JQuery的getScript、setTimeout延迟和让JS最后加载,以提升页面加载速度。

  面试的时候遇到的,所以整理出来,方便记忆。

  js延迟加载有助于提高页面加载速度,一般有以下几种:defer属性、async属性、动态创建DOM方式、使用JQuery的getScript、使用setTimeout延迟方法、让js最后加载。

1.defer属性

HTML 4.01 为 <script>标签定义了 defer属性。

用途:表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕之后再执行。

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

1

2

3

4

<head>

    <script src="test1.js" defer="defer"></script>

    <script src="test2.js" defer="defer"></script>

</head>

 2.async属性

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

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

1

2

3

4

5

<head>

    <script src="test1.js" async></script>

    <script src="test2.js" async></script>

</head>

<body>

3.动态创建DOM方式

1

2

3

4

5

6

7

8

9

10

11

12

13

14

//这些代码应被放置在</body>标签前(接近HTML文件底部)

<script type="text/javascript"

   function downloadJSAtOnload() { 

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

4.使用Jquery的getScript()方法 

1

2

3

 

$.getScript("outer.js",function(){//回调函数,成功获取文件后执行的函数

    console.log("脚本加载完成")

});

 

5. 使用setTimeout延迟方法

6.让js最后加载

把js外部引入的文件放到页面底部,来让js最后引入,从而加快页面加载速度。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值