JS相关概念

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

CSS通过link标签引入,放置在<head>标签内。
JS放置在页面底部,通过<script>标签引入,放置在body的闭合标签之前。


解释白屏和FOUC

  • 白屏:
    对于chrome、IE等浏览器,页面渲染需要等到HTML页面DOM树和CSS的CSSOM树构建完毕后,两者结合形成render tree后,才对页面进行渲染绘制。
    当CSS文件放于页面底部,会影响CSS的加载时间,因此在CSS没有全部加载并形成render tree之前,页面都处于空白状态,会导致白屏;如果使用@import标签,即使CSS放于头部,也可能出现白屏现象。
    当JavaScript文件放于页面头部时,JavaScript会禁用并发加载,阻塞JavaScript后面内容的呈现及后面组件的下载,等到JavaScript文件全部加载完成后才会继续执行之后的代码,因此JavaScript文件放于头部也会导致页面白屏现象。
  • FOUC:
    对于Firefox浏览器,DOM树的构建与CSS的渲染时同步进行的。所以当CSS样式置于页面底部时,首先浏览器会对HTML的元素进行展示,当CSS全部加载完成后对样式进行修改,出现FOUS现象。
    如果把CSS样式放在底部,对于IE浏览器,在某些场景下(点击链接,输入URL,使用书签进入等),也会出现 FOUC 现象。

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

async和defer是异步加载脚本的的属性。

<script async src="script.js"></script>
加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)。同时出现几个具有async属性的js文件,async属性不保证按照它们的先后顺序执行。

<script deferc src="script.js"></script>
加载script.js文件后面的文档元素过程将和script.js的加载异步进行,但 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成。


简述网页的渲染机制

  1. 解析 HTML 标签, 构建 DOM 树
  2. 解析 CSS 标签, 构建 CSSOM 树
  3. 把 DOM 和 CSSOM 组合成 渲染树 (render tree)
  4. 在渲染树的基础上进行布局, 计算每个节点的几何结构
  5. 把每个节点绘制到屏幕上 (painting)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. CSS和JS在网页中的放置顺序是怎样的? css放在head标签内,防止渲染时出现白屏 js放在最后body...
    billa_8f6b阅读 635评论 0 0
  • 简单介绍JavaScript的发展历史 JavaScript因互联网而生,回顾它的历史要从浏览器的历史讲起。 19...
    _Dot912阅读 617评论 0 3
  • 1、CSS和JS在网页中的放置顺序是怎样的? (1)CSS 对于谷歌浏览器和Safari放在head里或body里...
    徐国军_plus阅读 555评论 0 0
  • 1,CSS和JS在网页中的放置顺序是怎样的? 网站加载的整个完整过程是:1、首先浏览器从服务器接收到html代码,...
    进击的前端_风笑影阅读 346评论 0 0
  • 任务 CSS和JS在网页中的放置顺序是怎样的? 解释白屏和FOUC async和defer的作用是什么?有什么区别...
    mhy_web阅读 605评论 0 1

友情链接更多精彩内容