1.<script>元素
1.1 script元素的属性
- async 可选,异步脚本,告诉浏览器立即下载,延迟执行,但不保证按照它们的先后顺序执行,只对外部文件有效
- charset 可选,很少使用,表示通过src属性指定的代码的字符集
- defer 可选,延迟脚本,告诉浏览器立即下载,但延迟执行,只对外部文件有效。建议只包含一个延迟脚本
- language 已废弃
- src 可选,表示包含要执行代码的外部文件
- type 可选,表示文档类型,如:text/javascript
1.2 带有src属性的script标签嵌入代码会被忽略
带有src属性的<script>元素不应该在其<scrpit>和</script>标签之间再包含额外的JavaScrit代码,如果包含了嵌入的代码,则只会下载并执行外部脚本文件,嵌入的代码会被忽略。
1.3 按照先后顺序依次解析
无论如何包含代码,只要不存在defer和async属性,浏览器都会按照<script>元素在页面中出现的先后顺序对它们依次进行解析。换句话说,在第一个<script>元素包含的代码解析完成后,第二个<script>包含的代码才会被解析,然后才是第三个、第四个......
2 标签的位置
在文档的<head>元素中包含所有JavaScript文件,意味着必须等到全部JavaScript代码都被下载、解析和执行完成后,才能开始呈现页面的内容(浏览器在遇到<body>标签时才开始呈现内容)。对于那些需要很多JavaScrit代码的页面来说,这无疑会导致浏览器在呈现页面时出现明显的延迟,而延迟期间的浏览器窗口中将是一片空白。为了避免这个问题,现代Web应用程序一般都把全部JavaScript引用放在<body>元素中页面内容的后面。
3 <noscript>元素
1.浏览器不支持脚本;
2.浏览器支持脚本,但脚本被禁用
符合以上任何一个条件,浏览器都会显示<noscript>中的内容