首页
学习
活动
专区
工具
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 执行的持续时间

3K62

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

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

2.9K34
  • 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。

    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.9K50

    移动端调试杀手锏

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

    76310

    微信小程序原理

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

    4.6K40

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

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

    59010

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

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

    97420

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

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

    1K20

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

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

    2.1K30

    在 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上运行的程序。

    4.1K10

    【云+社区年度征文】面试官问我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:重新计算样式...当然,这里更多的是对交互阶段的响应的要求,而不一定是对初始加载阶段的要求。 总结 本文从工作原理的视角,结合实际工程的录制结果,进行了一次实践对理论知识的检验。

    56110

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

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

    89140

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

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

    53030

    从Webkit内部渲染机制出发,谈网站渲染性能优化

    在Activity字段中我们可以看到,我们的页面经历了重新计算样式→更新Layer树→绘制→合成合成层的过程,结合我们的Summary版块中的环形图,我们可以大致把页面渲染分为三个阶段: 第一阶段,资源加载及脚本执行阶段...↖(^ω^)↗ 不过这时候问题来了,为什么我们已经对RenderObject合成了一次RenderLayer,之后还需要再合成一次Compositing Layer呢,这难道不是多此一举吗?...其实原因是,首先我们再一次对页面的层级进行了一次合成,这样可以减少内存的使用量;其二是在合并之后,GPU会尽量减少合并后元素发生更新带来的重排重绘性能和处理上的困难。...我们都知道,提升渲染性能的第一要义是减少重排重绘,我们之前也说过,在软件渲染的过程中,如果发生元素更新,CPU需要找到更新到RenderObject进行重新绘制,其中过程包括了重排和重绘。...如果你对这些计算机基础知识还不是特别了解,或者之前没有传统编程语言的基础,我推荐大家去翻阅这样一篇文章,能够快速地带你了解关于代码执行性能的重要指标——时间复杂度的相关知识。

    75710
    领券