[JavaScript](二) HTML中的JavaScript

34 阅读2分钟

1 . < script > 元素

把 JavaScript 插入到 HTML 中的主要方法是使用 < script > 元素!!

  • 包含在< script > 里的代码会被从上到下进行解释。在< script > 元素中的代码被计算完成之前 ,页面的其余内容不会被加载,也不会被显示

  • 如果想要引入外部 js 文件,就可以用到 < script > 元素 内的 src 属性!!!

       - 但要注意,如果引入了外部文件,< script > 元素内部就不要再写代码了,不会被执行!!
    

2 . < script > 标签的位置

注意:

页面是在浏览器解析到 的起始标签时才开始渲染!!

所以:

如果我们把< script > 标签放在 < head > 里,那么对于需要很多 js 代码的页面,就会导致页面渲染有明显延迟!!!(浏览器遇见< script > ,只有把里面的代码解释完毕后,才会接着继续渲染)而在此期间,浏览器的窗口完全空白!!!

3 . < script > 标签的 defer属性--推迟执行脚本

 < script defer = "defer"> 
  • 该属性表示脚本在执行的时候不会改变页面结构

  • 脚本会延迟到整个页面都解析完毕后再执行

  • 相当于告诉浏览器,立马下载,但延迟执行

  • 只对外部文件有效

4 . < script > 标签的 async属性--异步执行脚本

  • 告诉浏览器,不必等脚本下载和执行完毕后再加载页面。假设有两个外部文件,同时也不必等到该异步文件下载和执行后再加载另一个文件!!!

5 . 动态加载脚本

     let script = document.createElement('script');
     script.src = "../xx.js"
     DOM节点.appendChild(script)
 默认是异步的,但不是所有浏览器都支持 `async` ,所以可以将其明确设置为同步加载!!!!
 
 
     script.async = false

6 . < noscript > 元素

  • 浏览器不支持脚本
  • 浏览器对脚本的支持关闭

满足以上任何一种情况 ,包含在 < noscript > 标签里的内容才会被渲染,否则不会被渲染!!!