《JS高级程序设计》第2章 HTML中的JavaScript

80 阅读2分钟
  1. 使用<script>的方式有两种:通过它直接在网页中嵌入 JavaScript 代码,以及通过它在网页中包含外部 JavaScript 文件。

  2. 在使用行内 JavaScript 代码时,要注意代码中不能出现字符串</script>,想避免这个问题,只需要转义字符"\"即可: <\/script>

  3. 使用了src属性的<script>元素不应该再在<script></script>标签中再包含其他 JavaScript 代码。如果两者都提供的话,则浏览器只会下载并执行脚本文件,从而忽略行内代码。

  4. src属性指定的路径发送的GET请求不受浏览器同源策略限制<script>标签的integrity属性是防范这种问题的一个武器,但这个属性也不是所有浏览器都支持。

  5. 浏览器都会按照<script>在页面中出现的顺序依次解释它们,前提是它们没有使用deferasync属性。

  6. defer属性表示脚本在执行的时候不会改变页面的结构。也就是说,脚本会被延迟到整个页面都解析完毕后再运行,即告诉浏览器立即下载,但延迟执行,但会在DOMContentLoaded事件之前执行。defer属性只对外部脚本文件才有效。

  7. defer不同的是,标记为async的脚本并不保证能按照它们出现的次序执行,不必等到该异步脚本下载和执行后再加载其他脚本。也就是说,不需要等待其他脚本,同时也不阻塞文档渲染,即异步加载。正因为如此,异步脚本不应该在加载期间修改 DOM 。异步脚本保证会在页面的 load 事件前执行。

  8. 现代 Web 应用程序通常将所有 JavaScript 引用放在<body>元素中的页面内容后面,页面会在处理 JavaScript 代码之前完全渲染页面,使用户感觉页面加载更快。

  9. 最佳实践是尽可能将 JavaScript 代码放在外部文件中,原因如下:

    1. 可维护性
    2. 缓存
    3. 适应未来
  10. 通过使用<noscript>元素,可以指定在浏览器不支持脚本时显示的内容。如果浏览器支持并启 用脚本,则<noscript>元素中的任何内容都不会被渲染。