js 脚本加载知识图谱

129 阅读1分钟

脚本加载.jpg

一、script元素

1. src

没有这个属性,表示包含行内js代码

有这个属性,用于指定要加载的外部js文件

2. type

在浏览器中,值始终为"text/javascript"

如果加载或包含ES模块代码,值为"module"

3. nomodule

兼容不支持ES6的浏览器:主要是IE11

4. defer

5. async

6. crossorigin

6.1 基本概念

  • Cross Origin Resource Share/涉及如下元素(跨源资源共享)

    <script>、<link>、<img>、<audio>、<video>
    
  • Origin由三部分组成:protocol(协议)、domain(域名)、port(端口)

  • 使用CORS的请求

6.2 如果是跨域请求,可以用来设置"凭据模式"(credentials mode)

【说明】凭据:HTML cookie、TSL客户端证书、HTTP authentication

  • 值为"anonymous",表示不包含凭据(保持匿名的请求)

  • 值为"use-credentials",表示包含凭据

  • 不设置这个属性,或值为"",相当于"anonymous"

7. intergrity

Subresource Intergrity

浏览器在加载带有intergrity属性的<script><link>标签时,在下载完文件后,会先比较自己计算的散列值与intergrity属性值,如果不相等,则返回网络错误

<script
  crossorigin="anonymous"
  integrity="sha256-PJJrxrJLzT6CCz1jDfQXTRWOO9zmemDQbmLtSlFQluc="
  src="https://assets-cdn.github.com/assets/frameworks-3c926bc6b24bcd3e820b3d630df4174d158e3bdce67a60d06e62ed4a515096e7.js"
>
</script>

8. charset

9. language

二、加载时机

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d5cb460a8b8b42409377b6a3c424154b~tplv-k3u1fbpfcp-zoom-1.image