html中使用avaScript
1.scirpt元素定义了以下属性:
async:可选。xi表示应该立即下载脚本,但不妨碍页面中的其他操作,比如下载其他资源或加载其他脚本,只对外部脚本文件有效
charset:可选。表示通过src属性指定的代码的字符集。这个属性很少用
defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效
language:已废弃
src:可选。表示包含要执行代码的外部文件
type:可选。可以看成是language的替代属性,表示编写代码使用的脚本语言的内容类型(也称为MIME类型),默认值为text/JavaScript
使用<script>元素的方式有两种:直接在页面中嵌入JavaScript代码和包含外部JavaScript文件
在解析外部JavaScript文件(包括下载该文件)时,页面处理也会暂时停止。如果是在XHTML文档中,也可以省略</script>标签
无论如何包含代码,只要不存在defer和async属性,浏览器都会按照scirpt元素在页面中出现的先后顺序对他们依次进行解析。换句话说,在第一个script元素包含的代码解析完毕之后,第二个script中包含的代码才会被解析,然后第三个,第四个,,,,
2. 标签的位置
现代web程序一般都把全部JavaScript引用放在body元素页面内容的最后面。这样,在解析包含JavaScript代码之前,页面的内容将完全呈现在浏览器中。
3.延迟脚本
defer这个属性的用途是表明脚本在执行时不会影响页面的构造。也就是说脚本会被延迟加载到整个页面都解析完毕后再运行。因此在script属性中设置defer属性,相当于告诉浏览器立即下载,但延迟执行。
有些浏览器支持这个属性,有些不支持,所以最好的方式还是把延迟脚本放在页面最底部
4.异步脚本
设置async属性的目的是不让页面等待脚本下载和执行,从而异步加载页面其他内容,标记为async的脚本并不保证按照他们的先后顺序执行。
5.在XHTML中的用法
可扩展超文本标记语言(XHTML),是将HTML作为XML的应用而重新定义的一个标准。
在XHTML中可以使用一个CData片段来包含JavaScript代码,在XHTML中,CData片段是文档中的一个特殊区域,这个区域中可以包含不需要解析的任意格式的文本内容
总结:
使用defer属性可以让脚本在文档完全呈现之后再执行。延迟脚本总是按照指定他们的顺序执行
使用async属性可以表示当前脚本不必等待其他脚本,也不必阻塞文档呈现。不能保证异步脚本按照他们在页面中出现的顺序执行
使用noscript元素可以指定在不支持脚本的浏览器中显示的替代内容。但在启用了脚本的情况下,浏览器不会显示noscript元素中的任何内容
6.文档模式
最初的两种文档模式是:混杂模式和标准模式
混杂模式:该模式会让IE的行为与(包韩非标准特性的)IE5相同
标准模式:该模式让IE的行为更接近标准行为
这两种行为主要影响css内容的呈现,但在某些情况下也会影响到JavaScript的解释执行
准标准模型:该模式下的浏览器特性有很多都是符合标准的,但也不尽然。不标准的地方主要体现在处理图片间隙的时候(在表格中使用图片时问题最为明显)
如果在文档开始处没有发现文档类型声明,则所有浏览器都会默认开启混杂模式。但不推荐这种方法,因为浏览器再这种模式下的行为差异很大,如果不使用某些hack技术,跨浏览器的行为根本就没有一致性可言
准标准模式,可以通过过渡型(transitional)和框架集(frameset)型文档类型来触发
过渡型: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
框架集型:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">