标签:
客户端JavaScript:客户端就是Web浏览器;
一、 前奏:
Web文档(document):一些呈现静态信息的页面,虽然有的页面是会动的,但信息本身还是静态!
Web应用:可以动态载入信息,相比与文档的文本化,应用看起来更加图形化;
客户端JavaScript的三个重要的对象:Window Document和Element;Window是全局对象,它的属性和方法是全局变量和全局函数,其中里面的属性location指向Location对象,Location对象指定当前窗口的URL;属性document指向对象Document对象,通过document.getElementById(‘id‘)能获取到Element对象;
客户端Js被嵌入进HTML文档里面出来有 内联(直接在标签里面写),src引入,直接在html属性里面写,还有一种是,放在URL里面,以javascript:开头,使用的是javascript:协议。
要测试一小段js代码,可以直接在浏览器地址栏输入javascript:js代码; <a href="javascript:new Date().toLocaleTimeString()">呵呵呵呵</a> 这句话可以替换当前页面文档内容;
客户端js的时间线:
1、Web浏览器创建Document对象,并开始解析Web页面,解析HTML元素和文本内容后添加Element对象和Text节点到文档中,此时document的readystate属性的值是loading;
2、当HTML解析遇到没有async和defer属性的<script>元素时,添加这些元素到文档,然后同步执行脚本,在脚本下载和执行时,解析器会暂停。
3、当解析器遇到设置了async属性的<script>元素是,它开始下载脚本文件,并继续解析文档;解析器不会暂停,脚本下载完会尽快执行;
4、当文档完成解析,document.readystate的值变为interactive;
5、所有有defer属性的脚本,会按照他们在文档里的出现顺序执行;
6、浏览器在Document对象上触发DOMContentLoaded事件。
7、文档解析完成,等待其他内容载入(图片等),当所有内容完成载入且脚本完成执行,document.readystate属性改变为complete;Web浏览器触发Window对象上的load事件;
8、调用异步事件,响应用户操作;
标签:
原文地址:http://www.cnblogs.com/liangblog/p/5959728.html