《JavaScript高级程序设计》第三版 笔记
在HTML中插入JavaScript的两种方法:
1.嵌入脚本
代码中不能出现</script>标签,否则浏览器会当做结束标签,导致报错。
2.外部脚本
带有src属性的<script>标签中出现嵌入代码,则嵌入代码会直接被浏览器忽略。
为什么推荐将javascript脚本放在</body>标签之前?
在HTML文档解析过程中,遇到javascript脚本会立即解析,阻塞HTML文档解析进程,直到javascript脚本解析完成后,才会继续HTML文档的解析。所以如果将javascript脚本放在<head>部分,一是拖慢页面响应速度,二是如果javascript脚本中要获取的DOM节点在脚本执行之后加载,则会报错。
<script>元素会按照它们在页面中出现的先后顺序依次解析,在不使用async属性和defer属性的情况下,只有在解析完前面的<script>元素之后,才会解析后面的<script>元素。
<script>的属性:
src:使用外部脚本时,src属性指定脚本的URL。
async:异步脚本,只对外部脚本有效。
表示应该立即下载脚本,但不阻塞页面的其他操作。
并不一定会按照脚本出现的先后顺序执行,因此应该确保两者之间互不依赖。
http://blog.csdn.net/sinat_37646901/article/details/79036346
defer:延迟脚本,只对外部脚本有效。
表示脚本立即下载,但延迟到文档全部解析和显示之后再执行。
延迟脚本不一定按照顺序执行,也不一定在DOMContentLoaded事件触发之前执行,因此最好只包含一个延迟脚本。
文档模式:
<noscript>元素
用来在浏览器不支持脚本的情况下显示替代内容。
除<script>元素外,<noscript>元素可以包含任何HTML元素。
只有在浏览器不支持脚本或脚本被禁用的情况下,<noscript>标签所包含的内容才会被显示。