HTML中script 标签中的那些属性

yizhihongxing

在HTML中, <script> 标签用于嵌入或引用JavaScript代码。

<script> 标签中,有两个属性可以用来控制脚本的加载和执行方式: async defer

当然这也是常见的一道面试题, async  和  defer 的作用和区别。

async defer 属性都可以用于异步加载脚本,从而避免了在加载脚本时阻塞浏览器渲染页面的问题。但是它们的具体行为略有不同。

当使用 async 属性时,浏览器会异步地加载脚本,并在下载完成后立即执行脚本,而不会等待页面的其他内容加载完成。如果页面中有多个异步加载的脚本,它们的执行顺序是不确定的,取决于它们完成下载的时间。 async 属性适用于不依赖于其他脚本或文档解析顺序的独立脚本。

当使用 defer 属性时,浏览器会异步地加载脚本,但是会在文档解析完毕后,按照它们在页面中出现的顺序执行它们。因此,如果页面中有多个 defer 脚本,它们会按照它们在页面中的顺序依次执行。这对于依赖于文档结构或其他脚本的脚本非常有用,因为它们需要在文档解析完成后才能正确执行。

 

以下是一个简单的例子,展示了 async defer 属性的不同行为:

<!DOCTYPE html>
<html>
  <head>
    <title>Script</title>
  </head>
  <body>
    <h1>Hello, script!</h1>
    <script src="script1.js" async></script>
    <script src="script2.js" defer></script>
  </body>
</html>

 

在这个例子中,我们在页面中引入了两个脚本: script1.js 和 script2.js 。其中, script1.js 使用了 async 属性,而 script2.js 使用了 defer 属性。

当浏览器解析这个页面时,它会异步地加载 script1.js ,但会继续解析页面并渲染内容。一旦 script1.js 下载完成,它会立即执行。在此期间,浏览器可能仍在解析和渲染页面。

对于 script2.js ,浏览器也会异步加载它,但是会等待页面解析完毕后才执行。因此, script2.js 的执行会在页面解析完毕后,按照它在页面中的出现顺序执行。

 

 

总结一下:

- 不带 async 或 defer 的脚本会立即加载并阻塞HTML解析。
- 带有 async 属性的脚本会异步加载并在加载完成后立即执行,可能在HTML解析完成之前或之后。
- 带有 defer 属性的脚本会延迟执行,直到HTML文档解析完成。
- 如果在一个 <script> 标签中同时使用了 async 和 defer 属性, async 属性会被忽略。

 

除了 async 和 defer 属性外, <script> 标签还有一些其他属性和特性:

1. src 属性:用于指定外部脚本文件的URL。如果设置了 src 属性, <script> 标签内部的JavaScript代码将被忽略。

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

 

2. type 属性:用于指定脚本的MIME类型。对于JavaScript,推荐使用 text/javascript 。但是,大多数浏览器默认将 <script> 标签识别为JavaScript,因此通常不需要显式设置 type 属性。

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

3. charset 属性:用于指定脚本文件的字符编码。这个属性已经不太常用,因为现在大多数浏览器和服务器默认使用UTF-8编码。

<script charset="UTF-8" src="script.js"></script>

 

4. crossorigin 属性:用于配置跨域资源共享(CORS)设置。当加载的脚本文件位于不同的域名下时,可以使用 crossorigin 属性来控制浏览器的跨域策略。

<script crossorigin="anonymous" src="https://script.com/script.js"></script>

 

5. integrity 属性:用于确保脚本文件的完整性。通过提供脚本文件的哈希值(例如,SHA-256、SHA-384或SHA-512),浏览器可以在加载文件时验证其完整性。

<script src="script.js" integrity="sha384-xxxxxxx"></script>

 

6. nomodule 属性:用于指定脚本不应在支持ES6模块的浏览器上执行。这可以用于向不支持ES6模块的旧浏览器提供回退脚本。

<script nomodule src="script.js"></script>

 

这些属性和特性使得 <script> 标签在不同的使用场景下更加灵活和易于配置。

原文链接:https://www.cnblogs.com/ronaldo9ph/p/17360990.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:HTML中script 标签中的那些属性 - Python技术站

(0)
上一篇 2023年4月27日
下一篇 2023年4月28日

相关文章

  • JS正则表达式验证账号、手机号、电话和邮箱是否合法

    下面我将介绍使用JavaScript正则表达式来验证账号、手机号、电话和邮箱是否合法的方法。 验证账号 账号的验证规则是由字母、数字、下划线组成的,长度为4-16位。我们可以使用正则表达式来进行验证。具体代码如下: function validateUsername(username) { var pattern = /^[a-zA-Z0-9_]{4,16}…

    JavaScript 2023年6月10日
    00
  • JS中使用FormData上传文件、图片的方法

    当需要在JavaScript中使用FormData对象来完成文件或者图片上传时,可以按照以下步骤进行: 创建FormData对象 可以通过new FormData()创建一个空的FormData对象。 let formData = new FormData(); 添加要上传的文件或者图片 使用append()方法向formData对象中添加要上传的文件或者图…

    JavaScript 2023年5月27日
    00
  • JS封装cookie操作函数实例(设置、读取、删除)

    下面我来为你详细讲解“JS封装cookie操作函数实例(设置、读取、删除)”的完整攻略。 什么是cookie cookie 是浏览器用于存储用户信息的一种机制。当我们需要在应用程序之间共享数据时,可以使用 cookie 来存储数据。它是一种名为键-值对的数据结构,可以存储在浏览器中的本地电脑上,并在将来的会话之间使用。 如何进行cookie操作 我们可以使用…

    JavaScript 2023年6月11日
    00
  • Javascript核心读书有感之表达式和运算符

    Javascript核心读书有感之表达式和运算符攻略 表达式和运算符的基本概念 在Javascript中,表达式是由变量、常量、运算符和函数调用等元素组成的组合,用于计算一个值。而运算符则是表达式中完成具体计算的部分。 运算符的分类 Javascript中的运算符可以分为以下几类: 算术运算符 用于数值运算,包括加减乘除、取余等,如:+、-、*、/、%。 示…

    JavaScript 2023年6月11日
    00
  • Js,alert出现乱码问题的解决方法

    让我为你详细讲解如何解决“Js,alert出现乱码问题”。 问题描述: 在 JavaScript 中,当我们在 alert 函数中传入一个包含中文字符的字符串时,可能会出现乱码或者无法正常显示的情况,这给我们的开发和调试带来了很大的困扰。 解决方法: 1.使用 escape 函数进行编码 JavaScript 的 escape 函数可以将字符串转义成 ASC…

    JavaScript 2023年5月19日
    00
  • 学习LayUI时自研的表单参数校验框架案例分析

    下面是“学习LayUI时自研的表单参数校验框架案例分析”的完整攻略: 学习LayUI时自研的表单参数校验框架案例分析 前言 LayUI是一款基于jQuery的UI库,广泛应用于前端开发中。其提供了丰富的组件和插件,方便快捷地构建Web界面。在使用LayUI过程中,表单参数校验是绕不过去的一个步骤,为此我们研发了一套表单校验框架,下面将详细介绍我们的研发过程和…

    JavaScript 2023年6月10日
    00
  • Js利用console计算代码运行时间的方法示例

    当我们需要测试我们写的代码的运行时间以找到性能瓶颈时,可以使用JavaScript中的console对象来帮助我们计算代码运行的时间。下面是使用console计算代码运行时间的方法示例及其详细攻略: 显式地调用console.time()方法和console.timeEnd()方法 console.time()方法可以起到计时的作用,它需要传入一个唯一的标识…

    JavaScript 2023年5月27日
    00
  • 浅谈JavaScript中内存泄漏的几种情况

    浅谈 JavaScript 中内存泄漏的几种情况 JavaScript 作为一门动态语言,具有自动垃圾回收机制,可以自动管理内存,以使程序运行更加高效。然而,由于某些原因,一些对象可能会无法被垃圾收集器正确回收,导致内存泄漏。本文将介绍几种常见的 JavaScript 内存泄漏情况。 1. 全局变量 在 JavaScript 中,变量分为全局变量和局部变量。…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部