当前位置: 首页 > news >正文

购物网站建设价位网页素材大宝库

购物网站建设价位,网页素材大宝库,网站品牌形象设计怎么做,医疗器械类网站icp备案前置审批一、浏览器是如何渲染页面的 常见的简洁答案#xff1a; 浏览器内核拿到内容后#xff0c;渲染流程大致如下#xff1a;解析HTML#xff0c;构建Dom树#xff1b;解析CSS#xff0c;构建Render树#xff1b;#xff08;将CSS代码解析成树形的数据结构#xff0c;与D…一、浏览器是如何渲染页面的 常见的简洁答案 浏览器内核拿到内容后渲染流程大致如下解析HTML构建Dom树解析CSS构建Render树将CSS代码解析成树形的数据结构与Dom树结合形成Render树布局Render树Layout/reflow负责各元素尺寸、位置的计算绘制Render树painting绘制页面像素信息浏览器将各层的信息发送给GPUGPU会将各层合成composite显示在屏幕上 牛逼的震惊面试官的答案 当浏览器的网络线程收到HTML文档后会产生一个渲染任务并将其传递给渲染主线程的消息队列。在事件循环机制的作用下渲染主线程取出消息队列中的渲染任务开启渲染流程。整个渲染流程分为多个阶段分别是HTML解析、样式计算、布局、分层、绘制、分块、光栅化、画。每个阶段都有明确的输入和输出上一个阶段的输出会成为下一个阶段的输入这样整个渲染流程就形成了一套组织严密的生产流水线。渲染的第一步是解析HTML 解析过程中遇到CSS就解析CSS遇到JS就解析JS。为了提高解析效率浏览器在开始解析前会启动一个预解析的线程率先下载HTML中的外部CSS文件和外部的JS文件如果主线程解析到link位置此时外部的CSS文件还没有下载解析好主线程不会等待继续解析后续的HTML。这是因为下载和解析CSS的工作是在预解析线程中进行的。这就是CSS不会阻塞HTML解析的根本原因。如果主线程解析到script位置会停止解析HTML转而等待JS文件下载好并将全局代码解析执行完成后才能继续解析HTML。这是因为JS代码执行的过程可能会修改当前的DOM树所以DOM树的生成必须暂停。这就是JS会阻塞HTML解析的根本原因。第一步完成后会得到DOM树和CSSOM树浏览器的默认样式、内部样式、外部样式、行内样式均会包含在CSSOM树中。渲染的下一步是样式计算 主线程会遍历得到DOM树依次为树中的每个节点计算出它最终的样式称之为Computed Style。在这一过程中很多预设值会变成绝对值比如red会变成rgb(255,0,0)相对单位会变成绝对单位比如em会变成px。这一步完成后会得到一棵带有样式的DOM树。接下来是布局布局完成后会得到布局树 布局阶段会依次遍历DOM树的每一个节点计算每个节点的几何信息。例如节点的宽高、相对包含块的位置。大部分时候DOM树和布局树并非一一对应。比如display: none;的节点没有几何信息因此不会生成到几何树又比如使用了伪元素选择器虽然DOM树中不存在这些伪元素节点但他们拥有几何信息所以会生成到布局树中。还有匿名行盒、匿名块盒等等都会导致DOM树和布局树无法一一对应。下一步是分层 主线程会使用一套复杂的策略对整个布局树中进行分层。分层的好处在于将来某一个层改变后、仅会对该层进行后续处理从而提升效率。滚动条、折叠上下文、transform、opacity等样式都会或多或少的影响分层效果也可以通过will-change属性更大程度的影响分层效果。再下一步是绘制 主线程会为每个层单独绘制指令集用于描述这一层的内容该如何画出来。完成绘制后主线程将每个图层的绘制信息提交给合成线程剩余工作将由合成线程完成。合成线程首先对每个图层进行分块 、将其划分为更小的区域。它会从线程池中拿取多个线程来完成分块工作。分块完成后进入光栅化阶段 合成线程会将块信息交给GPU进程以极高的速度完成光栅化。GPU进程会开启多个线程来完成光栅化并且有限处理靠近视口区域的块。光栅化的结果就是一块一块的位图。最后一个阶段就是画了 合成线程拿到每个层、每个块的位图后生成一个个指引信息。指引会标识出每个位图应该画到屏幕的哪个位置以及会考虑到旋转、缩放等变形。变形发生在合成线程与渲染主线程无关这就是transform效率高的本质原因。合成线程会把指引信息交给GPU进程由GPU进程产生系统调用提交给GPU硬件完成最终屏幕的生成。 二、什么是reflow回流 reflow的本质就是重新计算layout树。当进行了会影响布局树的操作后需要重新计算布局树会引发layout。 为了避免连续的多次操作导致布局树反复计算浏览器会合并这些操作当JS代码全部完成后再进行统一计算。所以改动属性造成的reflow是异步完成的。 也同样因为如此当JS获取到布局属性时就可能造成无法获取到最新的布局消息。 浏览器在反复权衡下最终决定获取属性立即reflow。 三、什么时repaint重绘 repaint的本质就是重新根据分层信息计算了绘制指令。当改动了可见样式后就需要重新计算会引发repaint。 由于元素的布局信息也属于可见样式所以reflow一定会引起repaint。 四、为什么transform的效率高 因为transform既不会影响布局也不会影响绘制指令它影响的只是渲染流程的最后一个“画”阶段由于“画”阶段在合成线程中所以transform的变化几乎不会影响渲染主线程。反之渲染主线程无论如何忙碌也不会影响transform的变化。
http://www.hkea.cn/news/14538399/

相关文章:

  • rt19 wordpress优化大师有用吗
  • 成都各公司网站学生个人作品集制作
  • dede网站seo网站备案添加APP备案
  • 如何建设电商网站网站建设公司推荐乐云seo
  • 公司标志设计广州seo推广运营专员
  • 做优化网站网站后台编辑器不能正常显示
  • 怎么看网站的建设时间低价企业网站搭建
  • 铁路网站建设论文网络推广沈阳
  • thinkphp手机网站模板wordpress mysql 密码重置
  • 建筑导航网站app如何制作(怎么自己做app)
  • 单页面推广网站丹东seo优化效果费用
  • 长沙做网站设计公司专业h5网站制作
  • php网站开发发展趋势佛山网络公司哪家便宜
  • wordpress代码分析张店专业网站优化哪家好
  • 做淘宝网站的编程实例苏州html网站模板
  • 查看网站是否备案建设网站网站建设公司
  • 企业自己如何做网站推广蛋糕网站网页设计
  • 如何制作网站链接近三年成功的营销案例
  • 建设网站搞网络营销的总结网站维护源码自适应
  • 物流公司怎么做网站网站建设_网站设计 app制作
  • 南海桂城城乡建设局官方网站电商网站大全
  • 触屏网站meta标签百度软文推广
  • 龙岩网站建设行情销售客户管理软件哪个好
  • 简阳网站建设外贸企业网站改版
  • 信创网站建设网店代运营是什么意思
  • 网站解析后显示建设中国家企业信息系统查询系统官方
  • 兰州建设厅评职称网站python 网站开发代码
  • 全国做网站的大公司有哪些人人做网站
  • 徐州网站快速优化排名可信网站 收费
  • 湖南养老院中企动力网站建设网站开发主要技术