几种延迟加载JS代码的方法加快网页的访问速度

发布网友 发布时间:2022-04-22 04:53

我来回答

2个回答

懂视网 时间:2022-04-22 19:36

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

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

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

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

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

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

说明:虽然<script> 元素放在了<head>元素中,但包含的脚本将延迟浏览器遇到</html>标签后再执行。

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

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

2、async属性

HTML5 为 <script>标签定义了 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最后加载

热心网友 时间:2022-04-22 16:44

本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。
当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点:
1、延迟加载js代码
复制代码
代码如下:
<script
type=”text/javascript”
src=”"
id=”my”></script>
<script
type=”text/javascript”>
setTimeout(“document.getElementById(‘my').src='include/php100.php';
“,3000);//延时3秒
</script>
这样通过延迟加载js代码,给网页加载留出更多的时间!
2、js最后加载方案一
在需要插入JS的地方插入以下代码:
程序代码
复制代码
代码如下:
<span
id=”L4EVER”>LOADING…</span>
当然,那个LOADING…你可以换成自己喜欢的小图片.看起来很有AJAX效果呢.
然后在页面最底端插入:
程序代码
复制代码
代码如下:
<span
id=”AD_L4EVER”>你的JS代码在这里!</span
>
<script>L4EVER.innerHTML=AD_L4EVER.innerHTML;AD_L4EVER.innerHTML=”";</script>
3、让JS最后加载方案二
这个牵涉到网页的加载顺序问题,例如引入外部js脚本文件时,如果放入html的head中,则页面加载前该js脚本就会被加载入页面,而放入body中,则会按照页面从上倒下的加载顺序来运行javascript的代码~~~
所以我们可以把js外部引入的文件放到页面底部,来让js最后引入,从而加快页面加载速度。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com