<script> 标签属性

134 阅读2分钟

1. defer 属性 -- 推迟脚本执行

使用此属性将脚本延迟到整个页面都解析完毕后执行,有多个defer属性时,原则上会按照被列出的次序执行。

* 只对外部脚本文件有效,兼容性:IE4、Firefox3.5、Safari和Chrome7,其他版本浏览器都会忽略此属性,所以最好将要推迟的脚本放在页面底部

2. async属性 -- 异步执行脚本

异步加载外部文件,浏览器不必等待脚本下载和执行。

* 与defer不同点:不能保证按照标记async的顺序执行,各个标记async的脚本之间无依赖关系。

3. 其他属性

  • src :表示包含要执行的代码的外部文件。
  • type:代码块中脚本语言的内容类型(也称 MIME 类型)。按照惯例,这个值始终都是"text/javascript",其他可选值有"application/javascript""application/ecmascript"(非IE)。如果这个值是 module,则代码会被当成 ES6 模块,而且只有这时候代码中才能出现 import 和 export 关键字。
  • crossorigin:配置相关请求的CORS(跨源资源共享)设置。默认不使用CORS。crossorigin= "anonymous"配置文件请求不必设置凭据标志。crossorigin="use-credentials"设置凭据标志,意味着出站请求会包含凭据。
  • charset:使用 src 属性指定的代码字符集。这个属性很少使用,因为大多数浏览器不在乎它的值。
  • integrity:允许比对接收到的资源和指定的加密签名以验证子资源完整性(SRI,Subresource Integrity)。如果接收到的资源的签名与这个属性指定的签名不匹配,则页面会报错,脚本不会执行。这个属性可以用于确保内容分发网络(CDN,Content Delivery Network)不会提供恶意内容。