html DOM加载顺序

前几天遇到一个问题:load和ready 哪个先执行?

针对这个问题我自己研究学习了一下DOM文档的加载步骤:

1.首先浏览器会解析静态的html结构 比如 head body footer等html标签

2.当html结构加载完成我们需要渲染页面使其美观,因此此时需要加载 各种样式表文件。

3.然后再解析并执行js或者其他脚本代码。

4.构造html DOM对象,也就是 ready 操作

5.加载html和css中引用的外部资源文件。

6.页面加载完成(load操作),js进行一些事件的绑定和处理。

通过这个执行顺序我们知道 ready与load的区别在于资源文件的加载。ready构建了基本的DOM结构,而load是构建了js事件的绑定以及操作。所以页面在加载时需要先加载CSS样式表后加载解析并执行js等脚本,所以我们对页面进行优化是,css文件越早加载越好。js资源当道dom的底部最晚加载越好。

时间: 2024-12-19 16:43:51

html DOM加载顺序的相关文章

onload 事件、DOMContentLoaded事件、DOM加载顺序

1.onload 事件 定义与语法 onload事件会在页面或者图像加载完成后立即发生. 法:onload="SomeJavaScriptCode“: 参数:SomeJavaScriptCode    描述:必需.规定该事件发生时执行的 JavaScript. 支持该事件的 HTML 标签:<body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>

DOM加载顺序

解析HTML结构. 加载外部脚本和样式表文件. 解析并执行脚本代码. 构造HTML DOM模型. 加载图片等外部文件. 页面加载完毕. <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Title</title> <style type="text/css"> body { font-sie:

javascript在html中的加载顺序

参考:[1]http://coolshell.cn/articles/9749.html(酷壳) [2]http://shaozhuqing.com/?p=2756 颜色标注分别来自于链接地址内容 通常来说,浏览器对于Javascript的运行有两大特性:1)载入后马上执行,2)执行时会阻塞页面后续的内容(包括页面的渲染.其它资源的下载).于是,如果有多个js文件被引入,那么对于浏览器来说,这些js文件被被串行地载入,并依次执行. 因为javascript可能会来操作HTML文档的DOM树,所以

Ckeditor 的加载顺序

我们的只用在文件里面引用一个CKEditor的js文件--CKEditor目录下的ckeditor.js文件, 该文件会完成后续的所有的CKEidtor依赖的js文件的加载. 所依赖的js文件加载顺序如下 <script src="/Scripts/CKEditor/CKEditor.js"></script> <script src="http://localhost:9673/Scripts/CKEditor/core/loader.js&q

html css js加载顺序

1.js放在head中会立即执行,阻塞后续的资源下载与执行.因为js有可能会修改dom,如果不阻塞后续的资源下载,dom的操作顺序不可控. 正常的网页加载流程是这样的. 浏览器一边下载HTML网页,一边开始解析 解析过程中,发现<script>标签 暂停解析,网页渲染的控制权转交给JavaScript引擎 如果<script>标签引用了外部脚本,就下载该脚本,否则就直接执行 执行完毕,控制权交还渲染引擎,恢复往下解析HTML网页 如果外部脚本加载时间很长(比如一直无法完成下载),就

DOM加载:浏览器渲染和操作顺序(转载 学习中。。。)

DOM加载:浏览器渲染和操作顺序 1.HTML解析完毕 2.外部脚本和样式表加载完毕 3.脚本在文档内解析并执行 4.HTML DOM完全构造起来 5.图片和外部内容加载 6.网页完成加载 基于这个顺序,我们会发现如果在DOM完全加载之前使用DOM可能会发生错误(这个可能是很多初学者曾遇到的问题),而如果用onload加载函数又必须等待图片.视频等元素的加载,造成无法运行JavaScript.

easyui控件的加载顺序

使用easyui做布局时,会模仿窗口程序界面,做出一些较复杂的布局.按由外层到内层的顺序: (最外层)panel->tabs->tabs1 ->tabs2->layout->北区 ->中区-> panel多个...(最里层) ->西区 开始没注意控件的加载顺序,只是将同一种控件统一加载了结果最里层的panel尺寸超出父容器. 一时想不明白,后来忽感觉到easyui会在加载控件时计算它的尺寸, 如果先加载了内层的panel再加载它的父容器控件,则一定尺寸不对.

原生JS实现AJAX、JSONP及DOM加载完成事件

一.JS原生Ajax ajax:一种请求数据的方式,不需要刷新整个页面:ajax的技术核心是 XMLHttpRequest 对象:ajax 请求过程:创建 XMLHttpRequest 对象.连接服务器.发送请求.接收响应数据: 下面简单封装一个函数,之后稍作解释 ajax({ url: "./TestXHR.aspx", //请求地址 type: "POST", //请求方式 data: { name: "super", age: 20 },

HTML加载顺序总结测试

首先,页面加载顺序:解析HTML结构.加载外部脚本和样式表文件.解析并执行脚本代码.构造HTML DOM模型.加载图片等外部文件.页面加载完毕. 也就是:html → head → title → #text(网页标题) → style → 加载样式 → 解析样式 → link → 加载外部样式表文件 → 解析外部样式表 → script → 加载外部脚本文件 → 解析外部脚本文件 → 执行外部脚本 → body → div → script → 加载脚本 → 解析脚本 → 执行脚本 → img