同步加载、异步加载、延迟加载、预加载的区别

  1. <link rel="preload" href="script1.js" as="script">
    <link rel="preload" href="script2.js" as="script">

    同步加载:浏览器在遇到<script>标签时,会立即停止解析HTML,并执行JavaScript代码,这样会阻塞后续代码的执行。如果页面中存在多个同步加载的脚本,那么后面的脚本需要等待前面的脚本加载和执行完成后才能继续执行。

    <script src="script1.js"></script>
    <script src="script2.js"></script>

    第一个<script>标签加载和执行完script1.js后才会继续加载和执行第二个<script>标签中的script2.js

  2. 异步加载:浏览器在遇到带有async属性的<script>标签时,会异步加载JavaScript文件,并继续解析HTML,在JavaScript文件下载完成后才执行。如果同时存在多个async属性的<script>标签,它们的加载和执行顺序是不确定的。

    html
    <script async src="script1.js"></script>
    <script async src="script2.js"></script>

    浏览器会异步加载script1.jsscript2.js,不会阻塞后续代码的执行,它们的加载和执行顺序是不确定的。

  3. 延迟加载:浏览器在遇到带有defer属性的<script>标签时,会异步加载JavaScript文件,并继续解析HTML,在HTML文档解析完成后再执行JavaScript文件。如果同时存在多个defer属性的<script>标签,它们的加载顺序是按照在文档中出现的顺序依次加载,但不会影响后续的DOM操作。

    <script defer src="script1.js"></script>
    <script defer src="script2.js"></script>

    浏览器会异步加载script1.jsscript2.js,并且等到HTML文档解析完成后再依次执行这两个脚本。延迟加载不会阻塞后续代码的执行,但会保持脚本的加载顺序

  4. 预加载:浏览器在遇到带有rel="preload"属性的<link>标签或使用JavaScript动态加载资源时,会提前下载指定的资源,在需要使用时直接从缓存中读取,从而提升页面性能和用户体验。

总结来说,同步加载会阻塞后续代码的执行,异步加载不会阻塞后续代码的执行,但是加载和执行顺序不确定,延迟加载会在HTML文档解析完成后再执行JavaScript文件,预加载可以提前加载资源,从而提升页面性能和用户体验。需要根据实际情况选择合适的加载方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/192084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【记录】Python|Python3程序测试速度的整个流程、方法对比和选取方式

参考&#xff1a;Python3.7中time模块的time()、perf_counter()和process_time()的区别 其他的博客太&#xff01;长&#xff01;了&#xff01;我实在看不下去了&#xff0c;每次都不记得什么场景用什么函数。 让我来用表格总结一下各个函数的使用场景、特性。 并附上分别的测…

【Java 基础】15 注解

文章目录 1.什么是注解2.元注解1&#xff09;定义2&#xff09;分类 3.内置注解4.自定义注解5.注解的基本语法6.验证注解是否生效7.注解的使用场景8.注解的注意事项结语 1.什么是注解 注解&#xff08;Annotation&#xff09;可以理解成一种特殊的 “注释” 注解定义时以 符号…

多线程06 单例模式,阻塞队列以及模拟实现

前言 上篇文章我们讲了wait和notify两个方法的使用.至此,多线程的一些基本操作就已经结束了,今天我们来谈谈多线程的一些简单应用场景. 单例模式 单例模式,顾名思义,只有一个实例的模式,我们有两种实现方式,分别是懒汉式和饿汉式,我们来分别给出代码. 饿汉式(此处的饿表示创建实…

json标签

json标签 json:"-" // 表示不进行序列化,忽略 json:"name,omitempty"//加上omitempty&#xff0c;可以在序列化的时候忽略0值或者空值&#xff1b;若要在被嵌套结构体整体为空时使其在序列化结果中被忽略&#xff0c;不仅要在被嵌套结构体字段后加json:“…

python程序内存泄漏的解决方法

笔者在实际应用过程中&#xff0c;利用python解析交易数据&#xff0c;其中的方法是对文件夹进行遍历&#xff0c;然后根据里面的每个文件进行单独的解析&#xff0c;也就是用到了多层循环&#xff0c;结果导致内存占用越来越大&#xff0c;以至于最终内存满了而程序崩溃退出。…

详解Spring中的Aop编程原理JDK动态代理和CGLIB动态代理

&#x1f609;&#x1f609; 学习交流群&#xff1a; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 &#x1f96d;&#x1f96d;3&#xff1a;QQ群&#xff1a;583783…

yolov8模型 onnxruntime推理及可视化

参考:https://github.com/ultralytics/ultralytics/blob/main/examples/YOLOv8-ONNXRuntime/main.py 1、yolov8 onnxruntime推理代码 1)导出参考:https://blog.csdn.net/weixin_42357472/article/details/131412851 2)查看保存的模型onnx的输入格式等信息 登录https://n…

MATLAB算法实战应用案例精讲-【深度学习】卷积神经网络

目录 前言 卷积神经网络发展历程 基于深度学习的计算机视觉与卷积神经网络 几个高频面试题目

使用PCReg.PyTorch项目训练自己的数据集进行点云配准

项目地址&#xff1a; https://github.com/zhulf0804/PCReg.PyTorch/tree/main 网络简介&#xff1a; 网络是基于PointNet Concat FC的&#xff0c;它没有其它复杂的结构&#xff0c;易于复现。因其简洁性&#xff0c;这里暂且把其称作点云配准的Benchmark。因作者源码中复杂…

剑指 Offer(第2版)面试题 14:剪绳子

剑指 Offer&#xff08;第2版&#xff09;面试题 14&#xff1a;剪绳子 剑指 Offer&#xff08;第2版&#xff09;面试题 14&#xff1a;剪绳子解法1&#xff1a;动态规划解法2&#xff1a;数学 剑指 Offer&#xff08;第2版&#xff09;面试题 14&#xff1a;剪绳子 题目来源…

DOM 事件的注册和移除

前端面试大全DOM 事件的注册和移除 &#x1f31f;经典真题 &#x1f31f;DOM 注册事件 HTML 元素中注册事件 DOM0 级方式注册事件 DOM2 级方式注册事件 &#x1f31f;DOM 移除事件 &#x1f31f;真题解答 &#x1f31f;总结 &#x1f31f;经典真题 总结一下 DOM 中如何…

TCP连接为什么是三次握手,而不是两次和四次

答案 阻止重复的历史连接同步初始序列号避免资源浪费 原因 阻止重复的历史连接&#xff08;首要原因&#xff09; 考虑这样一种情况&#xff1a; 客户端现在要给服务端建立连接&#xff0c;向服务端发送了一个SYN报文段&#xff08;第一次握手&#xff09;&#xff0c;以表示请…

固定Microsoft Edge浏览器的位置设置,避免自动回调至中国

问题描述 在使用Copilot等功能时&#xff0c;需要将Microsoft Edge浏览器的位置设置为国外。但每次重新打开浏览器后&#xff0c;位置设置又自动回调至中国&#xff0c;导致每次均需要手动调整。 原因分析 这个问题的出现是因为每次启动Microsoft Edge时&#xff0c;默认打开…

cmake和vscode 下的cmake的使用详解(三)

第七讲&#xff1a;【实战】使用 VSCode 进行完整项目开发 案例&#xff1a;士兵突击 需求&#xff1a; 1. 士兵 许三多 有一把 枪 &#xff0c;叫做 AK47 2. 士兵 可以 开火 3. 士兵 可以 给枪装填子弹 4. 枪 能够 发射 子弹 5. 枪 能够 装填子弹 ——…

2022年9月6日 Go生态洞察:Go的漏洞管理新支持

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

docker-速通

1.命令-镜像操作 docker pull nginx #下载最新版 docker pull nginx:1.20.1 #下载指定版本 镜像名:版本名&#xff08;标签&#xff09; docker images #查看所有镜像 # 如果只写镜像名实际就是redis redis:latest 记住这个不是命令 docker rmi 镜像名:版本号/镜像id…

利用段落检索和生成模型进行开放域问答12.2

利用段落检索和生成模型进行开放域问答 摘要引言2 相关工作3 方法 摘要 事实证明&#xff0c;开放域问答的生成模型具有竞争力&#xff0c;无需借助外部知识。虽然很有希望&#xff0c;但这种方法需要使用具有数十亿个参数的模型&#xff0c;而这些模型的训练和查询成本很高。…

在linux服上部署vue+springboot+nginx项目

一、环境准备 1、安装winscp便于可视化操作linux&#xff1a;winscp安装及关联putty使用_putty.exe没有找到_cherishSpring的博客-CSDN博客 2、安装jdk&#xff1a;linux系统安装jdk-CSDN博客 3、安装mysql&#xff1a;Linux7安装mysql数据库以及navicat远程连接mysql-CSDN博…

Fiddler抓包工具之fiddler设置断点和简单的并发测试

断点有两种方式&#xff1a; 1、全局断点 2、局部断点 全局断点 全局断点的特点是&#xff1a;不能针对一个请求&#xff0c;是给所有抓到的请求打断点 全局断点如何设置&#xff1a; 1、快速设置断点&#xff1a;直接点击底部状态栏断点处 &#xff1b;点击第一下是请求…

【算法专题】二分查找

二分查找 二分查找1. 二分查找2. 在排序数组中查找元素的第一和最后一个位置3. 搜索插入位置4. x 的平方根5. 山脉数组的峰顶索引6. 寻找峰值7. 寻找旋转排序数组中的最小值8. 点名 二分查找 1. 二分查找 题目链接 -> Leetcode -704.二分查找 Leetcode -704.二分查找 题…