问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

几种延迟加载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
膀胱癌医生要为什么要检查上尿路? 游览器书签怎样添加到手机桌面 玫瑰花是早上开还是晚上开 玫瑰是晚上开花吗 左拾遗是什么官左拾遗的解释 怎样炖羊肉好吃又烂 怎样炖羊肉软烂无膻味好吃 ...之心度君子之腹的意思以小人之心度君子之腹的解释以小人之心度君子... 以小人之心度君子之腹什么意思以小人之心度君子之腹出处介绍 苹果macbook pro开机音乐是什么 苹果台式电脑声音苹果电脑开机声音怎么设置 东北大学发表了多少篇文献综述2021年 js延迟加载的方式有哪些 新西游记之大唐天下 唐朝盛世是什么 我的邮箱是多少? 我国高新技术产业发展趋势 谜语:大唐天下 成果转化、应用、推广情况及预期前景怎么写? 大唐天下文化传媒有限公司怎么样? 作为在职教师,怎样可以更好得提升自己 福建大唐天下建设有限公司怎么样? 唐朝出现了哪两次盛世? 大唐天下怎么注销账号? 大唐天下 大唐天下投资有限公司怎么样? 教师如何提高创新能力? 大唐开国皇帝李渊是如何得到天下的呢? 大唐天下这个平台是骗人的吗 大唐天下骗了这么多人,国家没人管吗 大唐天下商业模式? 朱国云的代表成果 延迟加载js文件的方法。 当代高新技术简介论文题 《苏联技术向中国的转移》txt下载在线阅读全文,求... 热血无赖怎么关闭无限金币 javascript或jquery如何实现延迟加载js文件 如何延迟加载JS 贵州大唐天下无罪释放,唐天下目前情况大 js延迟加载的方式有哪些? 中国科学院地理科学与资源研究所的科研成就 如何延迟加载JS??? 网页如何延时引用JS文件,如何延迟加载JS文件 热血无赖怎样捞钱 热血无赖赚钱技巧 求一份统计数据 JS延时3秒加载的问题!一段放在html网页中的代码如... 2015年村支书党建述职报告应该怎样写 热血无赖终极版v1.0修改器 哪里可以找到一个能用的热血无赖修改器? 灰色背景卡通图像女生 2013年青岛高新技术企业认定怎么申报?有没有评分...