阻塞特性
浏览器对javascript的处理主要有2部分:下载和执行
- 下载在有些浏览器中是并行的,有些浏览器中是串行的,如IE8、Firefox3、Chrome2都是串行下载的
- 执行在所有浏览器中默认都是阻塞的,当js在执行时不会进行html解析等其它操作
阻塞特性:
javascript有个阻塞特性,当浏览器执行javascript代码时,不能同时做其它任何事情。无论当前javascript代码是内嵌还 是在外链文件中,页面的下载和渲染都必须停下来等待脚本执行完成。浏览器在下载和执行脚本是进出现阻塞的原因在于,脚本可能会改变页面或 javascript的命名空间,它们对后面页面内容造成影响。
一、脚本位置
浏览器在碰到一个引入外部javascript文件的<script>标签时会停下所有工作来下载并解析执行它,在这个过程中,页面渲染和用户交互完全被阻塞了。例: