浅析浏览器引擎对JQuery DOM加载和执行

简介: 摘要: 本文浅析浏览器引擎对jquery加载和执行的原理和分析 在研究jquery的加载原理,我们首页查看一下浏览器是如何加载页面的。   浏览器加载页面 首页我们写一个简单的html页面,进行测试,在chorme浏览器下使用的截图: 可以观察到浏览器对页面的加载顺...

摘要:

本文浅析浏览器引擎对jquery加载和执行的原理和分析

在研究jquery的加载原理,我们首页查看一下浏览器是如何加载页面的。

 

浏览器加载页面

首页我们写一个简单的html页面,进行测试,在chorme浏览器下使用的截图:

页面加载

可以观察到浏览器对页面的加载顺序:

  1. HTML页面 也就是DOM
  2. js文件
  3. css文件
  4. 图片资源

有趣的是:无论js和css文件顺序怎么放,都是优先加载js文件,不知道为什么?这里请高手解释一下

何为HTML-DOM文件

官网定义是:HTML DOM 把 HTML 文档呈现为带有元素、属性和文本的树结构(节点树)。

PHP10086博客网

对于这个我的理解就是纯HTML标签语言,浏览器将HTML文档转化为DOM树并下载相关资源,这个优先加载。

各个浏览器对HTMLDOM加载情况:

  1. IE 6/7 & Opera 按文档顺序解析,CSS并行加载,外部JS串行加载,阻塞 后续资源
  2. IE 8/9• JS并行加载
  3. Firefox & Chrome• 分析文档结构,优先并行加载css和js

 

      关于浏览器解析和渲染一个比较好的PPT文档

JQUERY DOM加载

大家都知道js加载和执行的时候很容易造成浏览器阻塞,那么jquery的DOM为什么很高效呢?

1 $(document).ready(function(){
2   // 在这里写你的代码...
3 });

官方手册对这种方法的解释:

当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。

这是事件模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度。

可以在同一个页面中无限次地使用$(document).ready()事件。其中注册的函数会按照(代码中的)先后顺序依次执行。

简单地说,这个方法纯粹是对向window.load事件注册事件的替代方法。通过使用这个方法,可以在DOM载入就绪能够读取并操纵时立即调用你所绑定的函数,而99.99%的JavaScript函数都需要在那一刻执行。

 

下面我们做一个实验验证一下:

验证1:DOM加载方式放在head里和放在body外边是否有区别?

一个html页面ajax读取PHPapi数据,在api文件输出数据前我们故意先执行sleep(10),就是故意延迟10秒再把数据输出

先看效果图:

PHP10086博客网

结论:无论jq程序放在页面的什么地方(在引入jq文件后面的所有位置),得到的效果都是一样的。

  1. DOM执行
  2. js css文件加载
  3. jq程序执行api文件
  4. 图片资源

如果引入两段jq程序,那么他们回依次执行,从上到下执行,都是在DOM加载完成后执行。

 

window.onload的加载和执行

先看一下效果图:

PHP10086博客网

加载顺序

  1. DOM执行
  2. js css文件加载
  3. 图片资源
  4. jq程序执行api文件(最后执行)

结论:window.onload方法是在网页中所有的元素(包括元素的所有关联文件)完全加载到浏览器后才执行,即JavaScript此时才可以访问网页中的任何元素,就是把页面所有资源全部加载完成之后才执行js程序


本文链接: 浅析浏览器引擎对JQuery DOM加载和执行
联系作者: ,交流QQ群:群1:153856687,群2:198110186
版权所有: 非特殊声明均为本站原创文章,转载请注明出处: PHP10086博客网
订阅更新: 欢迎通过 RSS订阅我们的内容更新
目录
相关文章
|
缓存 监控 前端开发
在资源加载优化中,如何利用浏览器缓存提升性能?
通过以上这些方法,可以有效地利用浏览器缓存来提升资源加载的性能,减少网络请求次数,提高用户体验和应用的响应速度。同时,需要根据具体的应用场景和资源特点进行灵活调整和优化,以达到最佳的效果。此外,随着技术的不断发展和变化,还需要持续关注和学习新的缓存优化方法和策略。
542 159
|
JavaScript 前端开发 开发者
深入了解jQuery:轻松实现高效的DOM操作
【10月更文挑战第11天】深入了解jQuery:轻松实现高效的DOM操作
213 0
|
XML JavaScript 数据格式
XML DOM 浏览器差异
所有 modern browsers 支持 W3C DOM 规范, 但仍存在差异, 主要是处理空白和换行的不同。例如, 在 XML 中, Internet Explorer 不会将空白或换行视为文本节点, 而其他浏览器则会。这会导致相同的 XML 文档在 IE 中的子节点数为 4, 而在其他浏览器中为 9:
|
XML JavaScript 数据格式
XML DOM 浏览器差异
所有 modern browsers 支持 W3C DOM, 但在处理空白和换行上存在差异。例如, 使用记事本编辑的 XML 可能包含 CR/LF 和额外空格。IE 不将空白视作文本节点, 与其他浏览器不同。
|
9月前
|
数据采集 消息中间件 JavaScript
浏览器渲染揭秘:从加载到显示的全过程;浏览器工作原理与详细流程
了解浏览器工作原理与流程,能有效帮助前端开发与性能优化。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
JavaScript 前端开发
jQuery 操作 DOM 及 CSS
本文介绍了如何使用jQuery进行DOM操作和CSS样式的修改,包括如何获取和设置元素的文本内容、属性值、添加和删除元素,以及如何使用jQuery的addClass、removeClass、toggleClass、hasClass和css方法来操作元素的CSS。通过示例代码,展示了jQuery在实际开发中的便捷性。
jQuery 操作 DOM 及 CSS
|
JSON JavaScript 前端开发
Jquery常用操作汇总,dom操作,ajax请求
本文汇总了jQuery的一些常用操作,包括DOM元素的选择、添加、移除,表单操作,以及如何使用jQuery发送Ajax请求,涵盖了GET、POST请求和文件上传等常见场景。
|
安全 Oracle Java
edge浏览器加载java插件
edge浏览器加载java插件
881 1
|
网络协议 前端开发 JavaScript
浏览器加载网页的幕后之旅:从URL到页面展示详解
【8月更文挑战第31天】当在浏览器地址栏输入URL并回车后,一系列复杂过程随即启动,包括DNS解析、TCP连接建立、HTTP请求发送、服务器请求处理及响应返回,最后是浏览器页面渲染。这一流程涉及网络通信、服务器处理和客户端渲染等多个环节。通过示例代码,本文详细解释了每个步骤,帮助读者深入理解Web应用程序的工作机制,从而在开发过程中作出更优决策。
363 5
|
JavaScript 前端开发 API
深入理解jQuery:高效DOM操作与事件处理
【10月更文挑战第11天】深入理解jQuery:高效DOM操作与事件处理
182 0