第2章 在 HTML中 使用 JavaScript

2.1 script 元素

2.1.1 标签的位置

2.1.2 延迟脚本

2.1.3 异步脚本

2.1.4 在XHTML中的使用

2.1.5 不推荐使用的语法

2.2 嵌入代码与外部文件

2.3 文档模式

2.4 noscript 元素

2.5 小结

重点内容摘要

2.1 <script> 元素

<script> 定义了下列6个属性:

  • async :可选。表示应该立即下载脚本,但不应妨碍页面中的其它操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件加载有效。
  • charset : 可选。表示通过src属性指定的代码的字符集。由于大多数浏览器会忽略它的值,因此这个属性很少有人用。
  • defer : 可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。IE7 及更早版本对嵌入脚本也支持这个属性。
  • language : 已废弃。原来用于表示便携代码使用的脚本语言(如JavaScript、JavaScript1.2或VBScript)。大多数浏览器会忽略这个属性,因此也没有必要再用了。
  • src : 可选。表示包含要执行代码的外部文件。
  • type : 可选。可以看成是language的代替属性;表示编写代码使用的脚本语言的内容类型(也成为MIME类型)。虽然text/javascript 和text/ecmascript 都已经不被推荐使用,但人们一直以来使用的都还是text/javascript。实际上,服务器在传送JavaScript文件时使用的MIME类型通常是application/x-javascript,但在type 中设置这个值缺可能导致脚本被忽略。另外,在非IE浏览器中还可以使用以下值:application/javascript 和application/ecmascript 。老绿道约定俗成和最大限度的浏览器兼容性,目前type属性的值依旧还是text/javascript 。不过,这个属性并不是必须的,如果没有指定这个属性,则其默认值仍为text/javascript。

使用标签之间在包含额外的JavaScript代码。如果包含了嵌入的代码,则只会下载并执行外部脚本文件,嵌入的代码会被忽略。

无论如何包含代码,只要不存在defer和async属性,浏览器都会按照元素在页面中出现的先后顺序对他们一次进行解析。换句话说,在第一个元素包含的代码解析完成后,第二个包含的代码才会被解析,然后才会是第三个、第四个......

2.2嵌入代码与外部文件

在HTML中嵌入JavaScript代码虽然没有问题,但一般认为最好的做法还是尽可能使用外部文件来包含JavaScript代码。不过并不存在必须使用外部文件的硬性规定,但支持使用外部文件的人多会强调如下优点:

  • 可维护性:编辑不同HTML页面的JavaScript会造成维护问题。但把所有JavaScript 文件都放在一个文件夹中,维护起来就轻松多了。而且开发人员因此也能够在不触及HTML标记的情况下,集中精力编辑JavaScript代码。
  • 可缓存。浏览器能够根据具体的设置缓存链接的所有外部JavaScript文件。也就是说,如果两个页面都是用同一个文件,那么这个文件只需要下载一次。因此,最终结果就是能够加快页面加载的速度。
  • 适应未来:通过外部文件来包含JavaScript无须使用前面提到XHTML或注释hack。HTML和XHTML包含外部文件的语法是相同的。

第2章 在 HTML中 使用 JavaScript的更多相关文章

  1. 第二章 在Html中使用JavaScript

    https://www.jianshu.com/p/8247a9401725 2.1 Script元素 https://developer.mozilla.org/en-US/docs/Web/HTM ...

  2. 《avascript 高级程序设计(第三版)》 ---第二章 在HTML中使用Javascript

    本章主要讲解了,怎么在HTML中使用: 1.<script src=""></script> 属性:defer="defer" 表示脚本 ...

  3. JavaScript高级程序设计(第三版)第二章 在HTML中使用JavaScript

    2.1 <script>元素 <script>定义了下列6个属性: async:可选.表示应该立即下载脚本,但不应妨碍页面的其他操作,比如下载其他资源或等待加载其他脚本.只对外 ...

  4. 读书笔记 - javascript 高级程序设计 - 第二章 在Html中使用JavaScript

    1 <script>的6个属性 async  立即下载当前script标签的外部脚本 但不能影响别的 charset 没用了 defer  文档显示之后再执行脚本,只对外部脚本有效 lan ...

  5. 第十一章:WEB浏览器中的javascript

    客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节 ...

  6. 《JavaScript高级程序设计(第3版)》阅读总结记录第二章之在HTML中使用JavaScript

    本章目录: 2.1 <script> 元素 2.1.1 标签的位置 2.1.2 延迟脚本 2.1.3 异步脚本 2.1.4 在XHTML 中的用法 2.1.5 不推荐使用的语法 2.2 嵌 ...

  7. javascript高级编程3第二章:在html中使用javascript

    2.1 <script>元素 向html页面中插入javascript的主要方法,就是使用<script>元素.这个元素被加入到正式的html规范中.html4.01为< ...

  8. 《JavaScript 高级程序设计》第二章:在HTML中使用JavaScript

    script 标记是 netspace 公司最早为在 html中引入 javascript代码而创造的HTML元素,并最终被 HTML规范采纳. script 标记有四个比较重要的属性: src ty ...

  9. 混合应用中的javascript实践

    混合应用中的javascript实践 混合应用(hybird app) 在几年前便进入大众视野,近来更是越发风生水起,深受人民群众的喜爱. 目录 概念 什么是混合应用 混合方式 交互 方法注入 参数传 ...

随机推荐

  1. tarjan求割点与割边

    tarjan求割点与割边 洛谷P3388 [模板]割点(割顶) 割点 解题思路: 求割点和割点数量模版,对于(u,v)如果low[v]>=dfn[u]那么u为割点,特判根结点,若根结点子树有超过 ...

  2. MCMC&Gibbs sampling

    Note of Markov Chain Monte Carlo and Gibbs Sampling :  http://pan.baidu.com/s/1jHpWY1o 序:A major lim ...

  3. 1755: N相关孪生素数

    #include<stdio.h>int f(int n,int L,int R){ int ch[10000],i,j,count=0; j=1; for(i=L;i<=R;i++ ...

  4. 第一篇:CDH配置本地http服务

    在我们安装cdh的时候,避免不了要安装一大堆软件,包括cm的服务器,hadoop的各种组件.这些组件的文件都比较大,所以我们会在本地配置一个http服务,以便于在安装cdh服务的时候能快速的安装完.本 ...

  5. 深入理解计算机系统大作业——程序人生P2P

    程序人生P2P 前言 经过一个学期的快乐学习(折磨),计算机系统终于结课了,自认为对于计算机系统算是有了粗浅的理解.为了庆祝结课,顺带总结自己的学习经历(只是为了完成大作业),便通过一个简单的程序he ...

  6. 2019icpc西安邀请赛

    来源:https://www.jisuanke.com/contest/2625?view=challenges 更新中 A.Tasks 直接贪心 代码:听说当时很多队伍提前拆题甚至上机了,所以很多0 ...

  7. nginx-tengine集合

    nginx-tengine集合 nginx获取客户端真实ip Nginx/tengine realserver健康检测

  8. Linux文本三剑客

    grep 文本过滤工具. 作用: 文本搜索工具,根据用户指定的行进行匹配检查,打印匹配到的行. 模式: 由正则表达式字符及文本字符所编写的过滤条件. grep的使用 语法:  grep [OPTION ...

  9. php 安装扩展插件实例-ftp.so

    工作记录一下   1.首先进入原始php包安装文件(不是安装后的文件,是下载php安装压缩包,解压后的那个文件)安装包里有个扩展文件夹ext,进入 #cd /home/php-5.3.3/ext/#l ...

  10. centos7.5下yum安装nginx-1.14.2

    rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm ...