首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么在chrome开发工具中重新计算样式之前对js进行了评估?

在Chrome开发工具中重新计算样式之前对JS进行评估的原因是为了确保在计算样式时能够准确地反映出JS对DOM的修改所带来的影响。当JS对DOM进行修改时,可能会导致元素的尺寸、位置、显示状态等发生变化,这些变化会影响到元素的样式计算。

通过在重新计算样式之前对JS进行评估,可以将JS对DOM的修改应用到样式计算中,确保样式计算的准确性。这样可以避免在开发过程中出现样式计算与实际效果不一致的情况,提高开发效率。

在Chrome开发工具中重新计算样式之前对JS进行评估的具体步骤如下:

  1. 当JS对DOM进行修改时,浏览器会记录下这些修改操作。
  2. 在重新计算样式之前,浏览器会根据记录的修改操作,将这些操作应用到DOM上,使得DOM的状态与JS对其的修改保持一致。
  3. 然后,浏览器会重新计算样式,考虑到了JS对DOM的修改,确保样式计算的准确性。
  4. 最后,浏览器会根据重新计算的样式,更新页面的显示效果,使得开发者可以看到最新的样式效果。

这种在重新计算样式之前对JS进行评估的机制,可以帮助开发者更好地理解和调试页面的样式计算过程,提高开发效率和调试效果。

推荐的腾讯云相关产品:腾讯云云服务器(https://cloud.tencent.com/product/cvm)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

前端性能分析工具利器

Chrome 60 之前的版本, 这个面板只包含网络使用率和页面性能两个测量类别,从 Chrome 60 版本开始, Audits 面板已经被 Lighthouse 的集成版取代。...如果你希望短时间内你的网站进行较全面的评估,可以使用 Lighthouse 来跑一下分数,确定大致的优化方向。...这里我们简单说一下使用的步骤: 隐身模式下打开 Chrome。隐身模式可确保 Chrome 以干净状态运行,例如浏览器的扩展可能会在性能评估中产生影响。...: 页面的帧数 JSEventListeners: 页面的事件数 Nodes: 页面的 DOM 节点数 LayoutCount: 全部或部分页面布局的总数 RecalcStyleCount: 页面样式重新计算的总数...LayoutDuration: 所有页面布局的合并持续时间 RecalcStyleDuration: 所有页面样式重新计算的总持续时间 ScriptDuration: JavaScript 执行的持续时间

2.9K62

前端性能优化--性能分析工具

Chrome 60 之前的版本, 这个面板只包含网络使用率和页面性能两个测量类别,从 Chrome 60 版本开始, Audits 面板已经被 Lighthouse 的集成版取代。...这里我们简单说一下使用的步骤:隐身模式下打开 Chrome。隐身模式可确保 Chrome 以干净状态运行,例如浏览器的扩展可能会在性能评估中产生影响。...有了这个协议,我们就可以自己开发工具获取 Chrome 的数据了。...页面的帧数JSEventListeners: 页面的事件数Nodes: 页面的 DOM 节点数LayoutCount: 全部或部分页面布局的总数RecalcStyleCount: 页面样式重新计算的总数...LayoutDuration: 所有页面布局的合并持续时间RecalcStyleDuration: 所有页面样式重新计算的总持续时间ScriptDuration: JavaScript 执行的持续时间

1.3K33

2020年值得你去试试的10个React开发工具

本文中,我将介绍11个关于React的开发工具,以帮助你选择以及带你了解如何用它们来使你更充分的使用框架。 1....使用“Profiler”选项卡,你也可以评估应用程序的性能。 这两个选项都可以Chrome DevTools选项卡上找到,为了能更好的体验该插件的功能和特性,你可以使用这个在线站点去体验。 2....安装DevTools后,在你已经React Dev Tools和React Sight的扩展设置启用了“允许访问文件URL”选项,你就可以DevTools种找到一个新的名为“React Sight...ES Lint:添加了命令行工具的支持。它集成到你的IDE,并帮助你改进语法,设置自己的编码样式,甚至某些情况下能为你自动修复错误。...右侧,你可以看到实际的代码,它在左侧生成UI。你可以通过这种方式展示UI,甚至可以通过直接在显示的界面上更改代码来其进行测试和编辑UI。

7.8K20

HTMLCSSJS 是如何在浏览器,渲染成你看到的页面?【图解Chrome

这么设计的原因,是因为 JS 可以使用类似 document.write() 方法来改变 DOM 的结构。这就是 HTML 解析器重新解析 HTML 之前,必须等待 JS 脚本执行的原因。...如果你 JS 执行中发生的事情细节有兴趣,V8 团队有一篇文章深入的对此进行了讲解,有兴趣可以看看。...这是因为浏览器具有默认样式表。 如果你 Chrome 的默认 CSS 是什么样的有兴趣,可以源码中看到具体细节。...[image.png] 这就牵扯到布局(Layout),布局是元素定位的过程,主线程遍历 DOM 并计算样式,然后创建布局树(Layout Tree),布局树,包含 X、Y 坐标和边框大小等信息。...合成(Compositor)的好处,是它可以不影响主线程的情况下完成。合成器线程不需要等待样式计算或者 JS 脚本执行,这就是为什么 “仅合成动画” 被认为是平滑性能的最佳选择。

4.7K50

移动端调试杀手锏

移动端调试几年前可能还是前端开发的一个痛点,不过随着开发工具的不断完善以及开源社区的大佬们无私的奉献,这一“难题”也变得不那么难。但是今天偶遇到的解决方案,却可以说是惊艳到我了。...Chrome浏览器自带了移动设备模拟功能,所以只需点击控制台左上角那个带有手机/pad icon 的图标,即可进入移动设备模式,并且伴有主流设备的选项可供选择,几乎解决了移动端样式调试的需求。...通过浏览器控制台的“模拟”,vConsole 实现了: 查看打印日志 查看网络请求 查看页面元素 查看 cookie 和 localStorage 控制台执行 js 自定义插件 但是就算有了这样的工具...,开发甚至是上线的过程,还是会有一些问题无法覆盖到,比如: 开发人员鲁莽上线,直接把 vConsole 带到生产环境 开发人员再次鲁莽上线,js 运行时错误,影响交互(致命) AlloyLever...换句话说,真正的调试功能还是借助 vConsole 完成的,但是使用场景和调用方式进行了拓展: 支持错误监控和上报 支持预埋机关(DOM/Url)唤起 vConsole 不得不说,高水平的前端工程师是有魔法的

72710

微信小程序原理

“我们的 WXSS 具有 CSS 大部分特性...我们 CSS 进行了扩充以及修改。”基于 CSS2 还是 CSS3?大部分是哪些部分?是否支持 CSS3 里的动画?不得而知。... Android 上,小程序的 javascript 代码是通过 X5 内核来解析 开发工具上, 小程序的 javascript 代码是运行在 nwjs(chrome内核) 我们先从开发工具谈起...开发工具 小程序的 javascript 代码运行在 nwjs 。nwjs 是什么鬼呢?...借助 Node.js 访问操作系统原生 API 的能力,可以开发跨平台的应用程序。微信小程序开发工具就是使用 nwjs 开发的。...开发工具自带的代码编辑器还是太简陋了。不知道为什么微信要重复发明轮子。理论上,给流行的代码编辑器 (sublime/atom/vscode etc.) 开发个插件。

4.5K40

穷追猛打,阿里二面问了我30分钟从URL输入到渲染...

所以我重新整理了一遍整个流程,本文较长,建议先收藏。 概述 进入正题之前,先简单了解一下浏览器的架构作为前置知识。...利用这份样式表,我们可以计算出DOM树每个节点的样式。之所以叫计算,是因为每个元素要继承其父元素的属性。...如果这时JS去修改了样式,那此时CSS的解析和JS的执行也没法同时进行了,会先等CSS解析完成,再去执行JS,最后再去解析HTML。 从这个角度来看,CSS有可能阻塞HTML的解析。...Prerender:获取下个页面所有的资源,空闲时渲染整个页面; 减少回流和重绘 回流是指浏览器需要重新计算样式...回流=计算样式+布局+分层+绘制;重绘=绘制。故回流性能的影响更大 所以应该尽量避免回流和重绘。

53910

使用 Performance 看看浏览器在做些什么

Main Main 代表渲染进程的主线程,渲染相关的事情基本都是它来做,脚本执行、样式计算、布局计算、绘制等等。 ?...解析 HTML 在其次,至于其他样式计算、微任务、垃圾回收等等,倒不是最痛的地方。当然,该例子工程本身重业务逻辑,JavaScript 代码量决定着其高成本。 ?...事实上,浏览器之前的设计,如果页面卸载阶段可视,visibilitychange 就会在 pagehide 之后触发,正如下图截图中一样。...Recalculate Style:重新计算样式,确定样式规则 Layout:根据计算结果进行布局,确定元素的大小和位置 Update Layer Tree:更新渲染层树 Paint:根据 Layer...当然,这里更多的是交互阶段的响应的要求,而不一定是初始加载阶段的要求。 ? 总结 本文从工作原理的视角,结合实际工程的录制结果,进行了一次实践理论知识的检验。

95020

学会使用 Performance, 找性能问题简单好多!

Main Main 代表渲染进程的主线程,渲染相关的事情基本都是它来做,脚本执行、样式计算、布局计算、绘制等等。...解析 HTML 在其次,至于其他样式计算、微任务、垃圾回收等等,倒不是最痛的地方。当然,该例子工程本身重业务逻辑,JavaScript 代码量决定着其高成本。...事实上,浏览器之前的设计,如果页面卸载阶段可视,visibilitychange 就会在 pagehide 之后触发,正如下图截图中一样。...我们可以看出首次绘制的一系列动作(有些过程啪的一下很快啊,截图就省了): CSS 加载完成 Parse Stylesheet:解析样式表,构建出 CSSOM Recalculate Style:重新计算样式...当然,这里更多的是交互阶段的响应的要求,而不一定是初始加载阶段的要求。 总结 本文从工作原理的视角,结合实际工程的录制结果,进行了一次实践理论知识的检验。

86720

面试官问我Chrome浏览器的渲染原理(6000字长文)

其中浏览器复习一下,它是多线程的的,js是单线程的,JS浏览器,它可以是多线程的。 下面围绕浏览器渲染原理话题开始描述,为什么要了解浏览器渲染页面机制呢?。...整个渲染流程,从HTML到DOM、样式计算、布局、图层、绘制、光栅化、合成和显示。 面试一问:为什么要构建DOM树?...为了了解完整的DOM树结构,可以打开Chrome的“开发者工具”,或按F12,如图下: ? image 接下来要让DOM节点拥有正确的样式,这就需要样式计算了。...样式计算的目的是为了计算出DOM节点中每个元素的具体样式:三步走 把CSS转换为浏览器能够理解的结构 转换样式的属性值,使其标准化 计算出DOM树每个节点的具体样式(涉及到CSS的继承规则和层叠规则...每个页面至少需要一次回流,就是页面第一次加载的时候。 回流的时候,浏览器会使渲染树受到影响的部分失效,并重新构造这部分渲染树,完成回流后,浏览器会重新绘制受影响的部分到屏幕,该过程成为重绘。

1.8K30

Node.js 上运行 Flutter Web 应用和 API

它支持开发期间进行有状态的热重启,这意味着你可以随时代码进行更改,并观看它们模拟器或物理设备上的应用,而无需重新启动程序或丢失程序状态。 Flutter 主要关注 iOS 和 Android。...正如你将很快看到的那样,只需进行一点的修改即可使用现有的 Flutter 应用并将其编译为 HTML、CSS 和 JS 包。 为什么 Node.js 上运行 Flutter Web 程序?...在运行程序之前,请先更新此常量的值,以便它可以连接到本地 Node.js 服务器上运行的 API。该网址必须包含你计算机的主机名。...可能会有某些样式与你仿真器或物理设备上看到的样式略有不同。 ? Chrome的应用预览 你会注意到该应用没有显示来自天气 API 的任何数据。...如果你的 Node.js 服务器仍在运行,请重新启动。 通过的浏览器访问 http://localhost:3000 ,查看在Node.js上运行的程序。

4K10

【云+社区年度征文】面试官问我Chrome浏览器的渲染原理(6000字长文)

HTML的内容是由标记和文本组成 CSS称为层叠样式表,是由选择器和属性组成 JS是可以使网页的内容“动”起来 有人说渲染流程可以分为:构建DOM树,样式计算,布局阶段,分层,绘制,分块,光栅化和合成等...其中浏览器复习一下,它是多线程的的,js是单线程的,JS浏览器,它可以是多线程的。 下面围绕浏览器渲染原理话题开始描述,为什么要了解浏览器渲染页面机制呢?。...整个渲染流程,从HTML到DOM、样式计算、布局、图层、绘制、光栅化、合成和显示。 面试一问:为什么要构建DOM树?...样式计算的目的是为了计算出DOM节点中每个元素的具体样式:三步走 把CSS转换为浏览器能够理解的结构 转换样式的属性值,使其标准化 计算出DOM树每个节点的具体样式(涉及到CSS的继承规则和层叠规则...每个页面至少需要一次回流,就是页面第一次加载的时候。 回流的时候,浏览器会使渲染树受到影响的部分失效,并重新构造这部分渲染树,完成回流后,浏览器会重新绘制受影响的部分到屏幕,该过程成为重绘。

1.4K211

学会使用 Performance, 找性能问题简单好多!

Main Main 代表渲染进程的主线程,渲染相关的事情基本都是它来做,脚本执行、样式计算、布局计算、绘制等等。...解析 HTML 在其次,至于其他样式计算、微任务、垃圾回收等等,倒不是最痛的地方。当然,该例子工程本身重业务逻辑,JavaScript 代码量决定着其高成本。...事实上,浏览器之前的设计,如果页面卸载阶段可视,visibilitychange 就会在 pagehide 之后触发,正如下图截图中一样。...我们可以看出首次绘制的一系列动作(有些过程啪的一下很快啊,截图就省了): CSS 加载完成 Parse Stylesheet:解析样式表,构建出 CSSOM Recalculate Style:重新计算样式...当然,这里更多的是交互阶段的响应的要求,而不一定是初始加载阶段的要求。 总结 本文从工作原理的视角,结合实际工程的录制结果,进行了一次实践理论知识的检验。

51710

使用 Performance 看看浏览器在做些什么

Main Main 代表渲染进程的主线程,渲染相关的事情基本都是它来做,脚本执行、样式计算、布局计算、绘制等等。...解析 HTML 在其次,至于其他样式计算、微任务、垃圾回收等等,倒不是最痛的地方。当然,该例子工程本身重业务逻辑,JavaScript 代码量决定着其高成本。...事实上,浏览器之前的设计,如果页面卸载阶段可视,visibilitychange 就会在 pagehide 之后触发,正如下图截图中一样。...我们可以看出首次绘制的一系列动作(有些过程啪的一下很快啊,截图就省了): CSS 加载完成 Parse Stylesheet:解析样式表,构建出 CSSOM Recalculate Style:重新计算样式...当然,这里更多的是交互阶段的响应的要求,而不一定是初始加载阶段的要求。 总结 本文从工作原理的视角,结合实际工程的录制结果,进行了一次实践理论知识的检验。

84740

分享 | 前端性能优化(CSS动画篇)

每个图层的节点计算样式结果(Recalculate style--样式计算) 3. 为每个节点生成图形和位置(Layout--回流和重布局) 4....计算需要被加载到节点上的样式结果(Recalculate style--样式计算) 2. 为每个节点生成图形和位置(Layout--回流和重布局) 3....,但IE10+不是很确定是否硬件加速 触发重布局的属性 有些节点,当你改变他时,会需要重新布局(这也意味着需要重新计算其他被影响的节点的位置和大小)。...缺点:JavaScript浏览器的主线程运行,而其中还有很多其他需要运行的JavaScript、样式计算、布局、绘制等其干扰。...前瞻 Google目前正在探究通过JS的多线程(Web Workers)来提供更好的动画效果,而不会触发重布局及样式计算 结论 动画给予了页面丰富的视觉体验。

1.9K20

【浏览器】910- 使用 Performance 看看浏览器在做些什么

Main Main 代表渲染进程的主线程,渲染相关的事情基本都是它来做,脚本执行、样式计算、布局计算、绘制等等。...解析 HTML 在其次,至于其他样式计算、微任务、垃圾回收等等,倒不是最痛的地方。当然,该例子工程本身重业务逻辑,JavaScript 代码量决定着其高成本。...事实上,浏览器之前的设计,如果页面卸载阶段可视,visibilitychange 就会在 pagehide 之后触发,正如下图截图中一样。...我们可以看出首次绘制的一系列动作(有些过程啪的一下很快啊,截图就省了): CSS 加载完成 Parse Stylesheet:解析样式表,构建出 CSSOM Recalculate Style:重新计算样式...当然,这里更多的是交互阶段的响应的要求,而不一定是初始加载阶段的要求。 总结 本文从工作原理的视角,结合实际工程的录制结果,进行了一次实践理论知识的检验。

50030
领券