JS查漏补缺——asnyc、defer、charse

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: JS查漏补缺系列是我在学习JS高级语法时做的笔记,通过实践费曼学习法进一步加深自己对其的理解,也希望别人能通过我的笔记能学习到相关的知识点。这一次我们先来了解一下asnyc/defer/charse是什么

<script>标签属性设置

无async和defer的<script>标签

  1. 立即加载脚本
  2. 会阻塞页面其他操作(暂停解析HTML)
  3. 脚本加载完成之后立即执行
  4. 当代码执行完毕后恢复解析


有async的<script>标签

代码用法:

<script>alert("hello world1")</script>

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

<script>alert("hello world2")</script>

<script>alert("hello world3")</script>

页面加载的过程&script脚本的输出顺序:

  1. 立即加载脚本
  2. 不阻塞页面其他操作(异步)
  3. 脚本加载完成之后
  1. 如果HTML未解析完,则暂停解析先让JS执行代码
  2. 如果HTML解析完,则JS立即执行代码
  1. 如果存在多个 async 的时候则不能保证执行顺序(谁先到执行谁

有defer的<script>标签

代码用法:

<body>

 <h1>Hello</h1>

 <script defer type="text/javascript"src="/script2. js"></script>

 <script defer type="text/javascript"src="/script1. js"></script>

 <p>after script tags</p>

 <script type="text/javascript">

   window. addEventListener('DOMContentLoaded', function(){

   console.1og('DOMContentLoaded')

   })

 </script>

</body>

页面加载的过程&script脚本的输出顺序:

  1. 立即加载脚本
  2. 不阻塞页面其他操作(异步)
  3. 加载完成之后JS不会立即执行
  4. html5会按文档中顺序执行



🤔 如果同时存在async,defer属性呢?

😁 则相当于只有 async

怎么使用

  • async:
  • 脚本是模块化的,并且不依赖于任何脚本
  • 你的脚本并不关心页面中的DOM元素
  • Defer:
  • 脚本依赖于或者被另一个脚本所依赖
  • 你的脚本代码依赖于页面中的DOM元素(文档是否解析完毕)
  • 不放置任何属性:
  • 脚本很小,并且异步脚本依赖于它

charse代码字符集

😁字符集(Charset):是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">  //charse代码字符集

<title>112233</tiiule>

</head>

<body>

</body>

</html>

参考资料:

  1. www.growingwiththeweb.com
目录
相关文章
|
15天前
|
监控 JavaScript 前端开发
确定使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript
【10月更文挑战第24天】选择使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript 是一个需要综合考虑多个因素的决策。需要根据脚本之间的依赖关系、页面加载性能要求、脚本的功能和重要性等因素来进行权衡。在实际应用中,需要通过测试和验证来确定最适合的加载方式,以提供更好的用户体验和页面性能。
|
15天前
|
监控 JavaScript 前端开发
使用 `defer` 属性异步加载 JavaScript
【10月更文挑战第24天】使用 `defer` 属性异步加载 JavaScript 是一种有效的提高页面性能和用户体验的方法。通过合理设置 `defer` 属性,可以在不影响页面渲染的情况下异步加载脚本,并确保脚本的执行顺序。在实际应用中,需要根据具体情况选择合适的加载方式,并注意处理可能出现的问题,以确保页面能够正常加载和执行。
|
JavaScript 前端开发
JS查漏补缺——JavaScript的继承实现
JS查漏补缺系列是我在学习JS高级语法时做的笔记,通过实践费曼学习法进一步加深自己对其的理解,也希望别人能通过我的笔记能学习到相关的知识点。这一次我们来了解JavaScript的继承实现
91 0
|
JavaScript 前端开发
JS查漏补缺——JavaScript的原型链
JS查漏补缺系列是我在学习JS高级语法时做的笔记,通过实践费曼学习法进一步加深自己对其的理解,也希望别人能通过我的笔记能学习到相关的知识点。这一次我们来了解JavaScript的原型链
92 0
|
存储 设计模式 JavaScript
JS查漏补缺——面向对象中与对象相关的知识
JS查漏补缺系列是我在学习JS高级语法时做的笔记,通过实践费曼学习法进一步加深自己对其的理解,也希望别人能通过我的笔记能学习到相关的知识点。这一次我们来了解面向对象中与对象相关的知识
93 0
|
JavaScript 前端开发
JS查漏补缺——with语句、eval函数
JS查漏补缺系列是我在学习JS高级语法时做的笔记,通过实践费曼学习法进一步加深自己对其的理解,也希望别人能通过我的笔记能学习到相关的知识点。这一次我们来了解with语句、eval函数
95 0
|
JavaScript
JS查漏补缺——柯里化
JS查漏补缺系列是我在学习JS高级语法时做的笔记,通过实践费曼学习法进一步加深自己对其的理解,也希望别人能通过我的笔记能学习到相关的知识点。这一次我们来了解柯里化
100 0
|
JavaScript 前端开发 索引
JS查漏补缺——arguments
JS查漏补缺系列是我在学习JS高级语法时做的笔记,通过实践费曼学习法进一步加深自己对其的理解,也希望别人能通过我的笔记能学习到相关的知识点。这一次我们来了解一下这个现在不推荐使用但在代码中还是会看到的arguments,免得见到的时候摸不着头脑
183 0
|
JavaScript
JS查漏补缺——神奇的this
JS查漏补缺系列是我在学习JS高级语法时做的笔记,通过实践费曼学习法进一步加深自己对其的理解,也希望别人能通过我的笔记能学习到相关的知识点。这一次我们来理解一下面试题常考的this的指向
137 0
|
JavaScript 前端开发 算法
JS查漏补缺——高阶函数、闭包
JS查漏补缺系列是我在学习JS高级语法时做的笔记,通过实践费曼学习法进一步加深自己对其的理解,也希望别人能通过我的笔记能学习到相关的知识点。这一次我们来理解一下面试题常考的高阶函数、闭包
99 0