JS相关概念

CSS和JS在网页中的放置顺序是怎样的?

  • CSS要放头部head中的link标签内引入。如果CSS放在后面可能页面会出现闪跳的感觉,或者是白屏或者布局混乱样式很丑直到CSS加载完成。
  • js文件要放在<script></script>标签中,置于</body>最后 </html>之前,用于最后渲染。js是阻塞加载,会影响页面加载的速度,如果js文件比较大,算法也比较复杂的话,影响更大。

解释白屏和FOUC

产生白屏与FOUC(无样式内容闪烁)的根本原因是由于浏览器加载与显示页面方式不同造成的。
在不同浏览器对css和html的处理方式不同,一种(IE和Chrome)是等待css加载完成后,对html进行渲染并显示,另一种(Firefox)是先对html元素进行展示,等css加载完成之后,再对html进行样式的设置;前者会造成白屏,后者则会造成FOUC。

async和defer的作用是什么?有什么区别

  • 作用:是script标签的两个属性,脚本引用异步设置。用于在不阻塞页面文档解析的前提下,控制脚本的下载和执行。
  • 区别:
    • async <script async src="script.js"></script>
      async,加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)。
    • defer <script defer src="script.js"></script>
      defer,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但是 script.js的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成。

简述网页的渲染机制

  1. 构建DOM树(DOM tree):从上到下解析HTML文档生成DOM节点树(DOM tree),也叫内容树(content tree);
  2. 构建CSSOM(CSS Object Model)树:加载解析样式生成CSSOM树;
  3. 执行JavaScript:加载并执行JavaScript代码(包括内联代码或外联JavaScript文件);
  4. 构建渲染树(render tree):根据DOM树和CSSOM树,生成渲染树(render tree);
    渲染树:按顺序展示在屏幕上的一系列矩形,这些矩形带有字体,颜色和尺寸等视觉属性。
  5. 布局(layout):根据渲染树将节点树的每一个节点布局在屏幕上的正确位置;
  6. 绘制(painting):遍历渲染树绘制所有节点,为每一个节点适用对应的样式,这一过程是通过UI后端模块完成;


    流程.png

    Webkit渲染引擎流程.png

参考1
参考2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. CSS和JS在网页中的放置顺序是怎样的? css放在head标签内,防止渲染时出现白屏 js放在最后body...
    billa_8f6b阅读 635评论 0 0
  • 1,CSS和JS在网页中的放置顺序是怎样的? 网站加载的整个完整过程是:1、首先浏览器从服务器接收到html代码,...
    进击的前端_风笑影阅读 346评论 0 0
  • 任务 CSS和JS在网页中的放置顺序是怎样的? 解释白屏和FOUC async和defer的作用是什么?有什么区别...
    mhy_web阅读 606评论 0 1
  • 1.CSS和JS在网页中的放置顺序是怎样的? css放在 标签中间,是为了防止白屏的出现 js放在body标签内...
    向前冲冲的蜗牛阅读 280评论 0 1
  • CSS和JS在网页中的放置顺序 网站加载的整个完整过程:首先浏览器从服务器接收到html代码,然后开始解析html...
    Joey的企鹅阅读 329评论 1 0

友情链接更多精彩内容