全面了解js中的script标签
在页面中用script标签引入javascript文件(<script type="text/javascript" src="js文件地址"></script>),浏览器在渲染页面的时候,当读取到script元素时,浏览器不会以HTML或XHTML的方式处理其内容,浏览器会通知浏览器的脚本引擎来接管script元素中的内容。
script元素的type属性定义脚本类型,type类型有:
1.text/ecmascript(表示以ECMAScript方式解析这段脚本,即基于ECMA-262脚本标准)
2.text/jscript(表示以JScript方式解析这段脚本,它是微软在IE浏览器中所实现的ECMAScript语言的一种变种)
3.text/vbscript
4.text/vbs
(3、4种表示以微软的VBScript方式处理,是完全不同的脚本语言)
script元素的language属性(早期的script标签中用其属性来解决浏览器兼容问题):
<script type="text/javascript" src="a.js" language="javascript1.2"></script>
language定义支持该脚本的浏览器版本(即浏览器支持javascript1.2,则就执行a.js文件中的代码)
script元素的defer属性:
<script type="text/javascript" src="a.js" language="javascript1.2" defer="defer"></script>
defer属性设置成"defer",表示该脚本不会生成任何文档内容,于是浏览器可以提前处理页面的剩余部分,在页面处理结束并做好显示准备时才处理脚本部分。
script标签在页面中放的位置。
浏览器从同一个域名并发载入的资源是有限制的,所以当把脚本添加到head元素中时,首先载入的将是脚本,其次才是文档的剩余部分。为什么说,把引入了javascript的script元素标签放在head中可能会使得浏览器延迟页面剩余部分的显示?主要是因为脚本中可能会调用document.write方法修改dcument对象。
参考:《Javascript学习指南》