-
输入URL(或者单击链接);
-
浏览器向服务器发送请求;
-
服务器执行某些动作或者获取某些资源,向浏览器返回响应信息;
-
浏览器处理HTML、CSS、JavaScript并都构建结果页面;
-
客户端应用(图形用户界面(GUI)应用)开始了它的生命周期,执行步骤如下
-
页面构建-创建用户界面
-
事件处理——进入循环(监控时间队列,一次只处理其中一个事件),等待事件(与页面元素交互,如点击事件)发生,发生后调用事件处理器。
-
关闭Web页面
页面构建阶段
-
解析HTML代码并构建文档对象模型(DOM)
-
浏览器根据HTML元素构建DOM树,二者紧密相关,但并不相同,HTML是浏览器页面UI构建初始DOM的蓝图。为了正确构建每个DOM,浏览器还会修复他在HTML中发现的问题。
-
在页面构建阶段,浏览器遇到特殊类型的HTML元素-脚本元素
-
执行JavaScript代码
-
浏览器生成DOM结构,在遇到script标签后停止加载DOM,去解析js全局变量和全局中调用的函数
-
js代码可以任意改变当前DOM,还可以使用addEventListener注册事件处理程序 -- 事件处理程序是一种函数,在某个特定事件(如鼠标点击、鼠标移动、键盘输入等)发生后由浏览器执行。
-
事件处理--事件发生后并不是立即执行的,而是按照事件发生的顺序加入到任务队列里。由于js是单线程的,在同一时刻最多只能处理一个事件,事件处理的顺序由加入事件队列的顺序决定。事件循环会检查事件对接的对头,如果检测到了一个事件,相应的事件处理器就会被调用。