第2章 在页面中使用JavaScript


# 第2章 在页面中使用JavaScript

# 2.1 script标签

HTML页面中插入JavaScript的做法,就是使用<script>标签,该标签的属性如下:

  • async 异步脚本,表示应该立即下载脚本,但不阻塞页面其他操作
  • charset 表示通过src属性指定的代码的字符集
  • defer 延迟脚本,表示脚本可以延迟到文档完全被解析和显示之后再执行。
  • src 嵌入外部文件
  • type 脚本语言的内容类型,默认值为text/javascript

页面内容是自上而下解析的,所有script标签应该放在body标签后面,传统做法是放在head标签中,但这样会阻塞页面的内容加载,也无法操作DOM元素如果一定要在这个位置使用javascript请使用window.onload包裹起来。

<head>
  <title>HTML</title>
    <script>
      window.onload = {
        // to do
      }
    </script>
<head>

# 2.2 嵌入代码和外部文件

使用嵌入外部文件优点:

  • 可维护性,所有JavaScript文件放在一个文件夹中,方便维护
  • 可缓存,根据浏览器的缓存机制,如果有两个页面都使用同一个文件,那么这个文件只需下载一次。这样能够加快页面加载额速度
  • 适应未来

# 2.3 文档模式

  • 混杂模式
  • 标准模式

# 2.4 noscript标签

noscript标签只有在下列情况下才会显示里面的内容:

  • 浏览器不支持脚本
  • 脚本被禁用
<body>
  <noscript>
   <P>本页面需要浏览器支持(启用)JavaScript</P>
  
 </noscript>
</body>

# 2.5 小结

把JavaScript插入到HTML中要使用<script>元素,使用这个元素合一把JavaScript嵌入到HTML页面中,让脚本与标记混合在一起;也可以包含外部的JavaScript文件。而我们需要注意的地方有:

  • 在包含外部JavaScript文件时,必须将src属性设置为指向相应文件的URL。而这个文件既可以是与包含它的页面位于同一服务器上的文件,也可以死其他任何域中的文件。
  • 所有script元素都会按照它们在页面中出现的先后顺序依次解析。在不使用defer和async属性的情况下,只有在解析完前面的script元素中的代码之后,才会开始解析后面script元素中的代码。
  • 由于浏览器会先解析完不使用defer属性的script元素中的代码,然后再解析后面的内容,所以一般应该吧script元素放在页面最后,即主要内容后面。body元素后面
  • 使用defer属性可以表示当前脚本不必等待其他脚本,也不必阻塞文档呈现。不能保证异步脚本按照它们在页面中出现的顺序执行。

另外,使用noscript元素可以指定在不支持脚本的浏览器中显示的替代荣。但在启动了脚本的情况下, 浏览器不会显示noscript元素中的任何内容。

上次更新: 10/26/2019, 11:44:13 PM