JavaScript脚本延迟加载的方式有哪些?(笔记)
原文
延迟加载就是等页面加载完成之后再加载 JavaScript 文件。 js 延迟加载有助于提高页面加载速度。
加载方式:
1.阻塞加载
平时默认的加载方式,前边进行加载会阻止浏览器后续处理,比如加载js会暂停图像的渲染。所以可以讲需要加载的js放到最后,使得js最后加载,先让页面显示出来。
2.延迟加载
延迟加载是脚本延迟到文档被完全解析和显示之后再执行。 非必须的模块代码延迟加载。
3.异步加载
异步加载是立即下载js'脚本的同时又不妨碍页面中的其他操作。
延迟的方法:
defer 属性: 给 js 脚本添加 defer 属性,这个属性会让脚本的加载与文档的解析同步解析, 然后在文档解析完成后再执行这个脚本文件,这样的话就能使页面的渲染不被阻塞。多个设置 了 defer 属性的脚本按规范来说最后是顺序执行的,但是在一些浏览器中可能不是这样。
async 属性: 给 js 脚本添加 async 属性,这个属性会使脚本异步加载,不会阻塞页面的解析 过程,但是当脚本加载完成后立即执行 js 脚本,这个时候如果文档没有解析完成的话同样会阻塞。多个 async 属性的脚本的执行顺序是不可预测的,一般不会按照代码的顺序依次执行。
tip: HTML 5为 <script>标签定义了async属性。
动态创建 DOM 方式: 动态创建 DOM 标签的方式,可以对文档的加载事件进行监听,当文档 加载完成后再动态的创建 script 标签来引入 js 脚本。
使用 setTimeout 延迟方法: 设置一个定时器来延迟加载js脚本文件
让 JS 最后加载: 将 js 脚本放在文档的底部,来使 js 脚本尽可能的在最后来加载执行。
JavaScript脚本延迟加载的方式有哪些?(笔记)相关推荐
- JavaScript脚本延迟加载的方式有哪些?
延迟加载就是等页面加载完成之后再加载 JavaScript 文件. js 延迟加载有助于提高页面加载速度. 一般有以下几种方式: defer 属性:给 js 脚本添加 defer 属性,这个属性会让脚 ...
- JavaScript脚本延迟加载的方式有哪些
延迟加载就是等页面加载完成之后再加载JavaScript 文件.js 延迟加载有助于提高页面加载速度 般有以下几种方式:defer 属性: 给js 脚本添加 defer 属性,这个属性会让脚本的加载与 ...
- Javascript脚本运行的方式(js写在页面什么地方)
1.脚本写在函数里,body标签里加onload这个函数,意为body加载完成执行函数func.代码如下: <script type="text/javascript"> ...
- 【JavaScript脚本】——T1基本语法——重点笔记
删除按钮与超链接删除 <h1>删除按钮</h1> <input type="button" onclick="return confirm( ...
- JavaScript脚本语⾔基础语法笔记总结
JavaScript脚本语⾔&基础语法&笔记总结 0.学前准备: JavaScript简介使⽤⽅法 1. JavaScript简介 什么是JavaScript? 前端Web技术的组成: ...
- MongoDB学习笔记-06 数据库命令、固定集合、GridFS、javascript脚本
介绍MongoDB支持的一些高级功能: 数据库命令 固定大小的集合 GridFS存储大文件 MongoDB对服务端JavaScript的支持 数据库命令 命令的原理 MongoDB中的命令其实是作为一 ...
- JavaScript标准参考教材(alpha)--笔记
一.导论 二.基本语法 1.严格来说var a=1与a=1效果不太一样,delete命令无法删除前者. JavaScirpt是一种动态类型语言,也就是说,变量的类型没有限制,可以赋予各种类型的值. J ...
- SpiderMonkey-让你的C++程序支持JavaScript脚本
译序 有些网友对为什么D2JSP能运行JavaScript脚本程序感到奇怪,因此我翻译了这篇文章,原文在这里.这篇教程手把手教你如何利用SpiderMonkey创建一个能执行JavaScript脚本的 ...
- ❗HTML引入JavaScript的三种常用方式汇总❗
引言 JavaScript是一门脚本语言,虽然名字里有Java,但是和Java没有一点关系,它原名是LiveScript:现在的前端JavaScript可以说是异常火爆,但是博主本人并不准备向前端发展 ...
最新文章
- Oracle ORA-03137: TTC protocol internal error : [12333] 故障分析
- BestCoder Round #92 比赛记录
- Jquery各版本下载,附Jquery官网下载方法
- python 示列:抓取网页所有a连接
- 原子变量、锁、内存屏障,写得非常好!
- H5移动端页面设计心得分享
- html5 vr效果,HTML5 Three.js 虚拟现实小实验(VR Experiment)
- php 根据一个数据组的id 取得另一个数据组对应的名称,怎样从两个spss的数据文件中选出id相同的数据,合并成一个文件...
- 一个程序员的书法学习之路-法帖篇
- matlab能否用递推公式给出表达式,matlab定积分运算
- NetBIOS name
- 《迅雷链精品课》第三课:区块链主流框架分析
- AWVS11安装、操作
- 一个物体 偏转角度计算
- win10下启动.bat文件闪退问题
- 用于前列腺近距离放疗的MRI / TRUS数据融合初步结果
- android webview aosp com.android.webview
- 益聚星荣:DR钻戒,“一生只送一人”的暴利生意
- 电视2k和4k有什么区别
- depot_tools_tutorial
热门文章
- 用机器学习实现情感分析
- webbench的安装和使用
- 两个非常使用的工具仿站小工具7.0以及排版页面的工具
- android电视自动关机,android实现自动关机的具体方法
- Windows安装MySQL报错:由于找不到msvcr120.dll无法继续执行代码
- MySQL下载安装教程和修改密码(亲测有用)
- python 工作流workflow_基于BPMN2.0的工作流(Workflow)
- 【软路由】J4125安装PVE7.3+iKuai+OpenWrt+NAS+Win10+Debian+CentOS
- 因特网上的英语学习资源 [转自 www.chinadaily.com.cn]
- 2035年会证实外星人存在?或许是任重道远的探索