js相关概念

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

  • 一般而言,CSS放置在网页文档的头部,能够保证用户更早的看到页面,提高用户体验,但缺陷是若放置的css文件过多,过大,会延长屏幕的白屏时间;JS放置在body内的尾部,同时也有时引入插件需要把JS放在头部,如jQqury的引入,一般放在头部
  • 由于浏览器的解析方式是自上而下的加载html文档,css是并行加载,js是阻塞加载,会影响页面的加载速度,如果js的文件较大,很容易出现FOUC现象,并且js还有可能修改DOM,js的执行可能依赖最新的样式,需要保证在js执行前所有css样式加载和解析完毕

解释白屏和FOUC

白屏发生情形:

  1. 将css文件放在html文档的最后
  2. 使用@import引入css(因为通过@import引入的css文件会被最后加载 )
  3. 将js文件放在头部阻塞html和css的加载

原因:

对于-webkit内核的浏览器(IE也会),在进行网页渲染时,会同时加载html和css分别构建DOM树和CSSOM树,等两者都构建完成后,再 绘制渲染树,然后将页面显示出来.如果在HTML中将css文件放置在文档的最后,那么将会导致CSSOM晚于DOM树的建立,浏览器需要等待CSSOM建立,再进行网页内容的绘制,这个等待的过程,没有内容显示导致了白屏的产生

FOUC: 仍是由于浏览器的解析造成的,如果把样式放到底部,对于IE浏览器(主要是firfox)在某些场景下(点击链接,URL,书签)会出现FOUC现象(逐步加载无样式的内容,等css加载后页面突然展现样式)

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

  • 一般情况下JS文件没有async和defer,会立即加载文件并解析,"立即"是指在渲染该script标签之下的文档元素之前,也就是不等待后续载入的文档元素,读到就加载并执行;有了async和defer可以实现异步加载,async加载和渲染后续文档的过程将和js的加载与执行并行进步(异步);defer同理,但js的执行要在所有元素解析完成之后,DOMContentLoaded事件触发之前完成

简述网页的渲染机制

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

相关阅读更多精彩内容

  • 1. CSS和JS在网页中的放置顺序是怎样的? css放在head标签内,防止渲染时出现白屏 js放在最后body...
    billa_8f6b阅读 631评论 0 0
  • 简单介绍JavaScript的发展历史 JavaScript因互联网而生,回顾它的历史要从浏览器的历史讲起。 19...
    _Dot912阅读 595评论 0 3
  • 1,CSS和JS在网页中的放置顺序是怎样的? 网站加载的整个完整过程是:1、首先浏览器从服务器接收到html代码,...
    进击的前端_风笑影阅读 339评论 0 0
  • CSS和JS在网页中的放置顺序 网站加载的整个完整过程:首先浏览器从服务器接收到html代码,然后开始解析html...
    Joey的企鹅阅读 326评论 1 0
  • 1.CSS和JS在网页中的放置顺序是怎样的? css放在 标签中间,是为了防止白屏的出现 js放在body标签内...
    向前冲冲的蜗牛阅读 277评论 0 1

友情链接更多精彩内容