script标签有多少种属性,你知道吗?

本文介绍了script标签的属性,包括integrity用于验证子资源完整性,crossorigin配置跨域请求,defer与async分别控制脚本延迟和异步执行。还讨论了动态加载脚本的方法,以及如何让浏览器预加载这些脚本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先思考一下,问自己几个问题
  1. script标签中 integrity属性的作用
  2. crossorigin 属性如何携带凭据?
  3. defer属性的作用,defer属性加载的脚本执行顺序如何?
  4. async属性的作用,async属性加载的脚本执行顺序如何?
  5. JS动态加载脚本前,如何让浏览器预加载?

将javaScript插入HTML中主要的方式是使用

  • async: 可选。表示立即开始下载脚本,但不能阻止页面其它的动作,比如下载资源或等待其它脚本加载。只对外部脚本文件有效。在外部js文件加载完成之后,如果浏览器空闲,并且load事件触发,会在load事件触发之前执行。是异步加载,会同时并行加载多个js文件,当前文件下载完后会立即执行,不会按照书写的先后顺序
  • defer: 可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。是延迟执行,会同时并行加载多个js文件,但会按照书写顺序,从上到下,依次执行。会在js加载完成之后,等到整个文档解析完成后才执行,和async执行时间不一样。
  • integrity:可选。允许比对接收到的资源和指定的加密签名以验证子资源完整性(SRI Subresource Integrity)。如果接收到的资源的签名与这个属性指定的签名不匹配,则页面会报错,脚本不会执行。这个属性可以用于确保内容分发网络(CDN)不会提供恶意内容。
  • crossorigin:可选。配置相关请求的CORS(跨源资源共享)设置。默认不使用CORS。crossorigin=“anonymous”(匿名的)配置文件请求不必设置凭据标志。crossorigin=“use-credentials”(凭证)设置凭据标志,意味着出站请求会包含凭据。
    • script标签 crossorigin 属性的主要作用:
      • 设置 crossorigin属性后,script标签去请求资源的时候,request会带上origin头,然后会要求服务器进行 cors校验,跨域的时候如果response header 没有 ‘Access-Control-Allow-Origin’ 是不会拿到资源的。cors验证通过后,拿到的script脚本运行内部报错的话,window.onerror 捕获的时候,内部的error.message可以看到完整的错误信息。
      • crossorigin的属性值分为anonymous和use-credentials。如果设置了crossorigin属性,但是属性值不正确的话,默认是anonymous。
      • anonymous代表同域会带上cookie,跨域则
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值