美文网首页
js相关概念

js相关概念

作者: cctosuper | 来源:发表于2017-10-31 15:41 被阅读0次

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组合成渲染树
  • 在渲染树的基础上进行布局,计算每个节点的几何结构
  • 把每个节点绘制到屏幕上

相关文章

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? 解释白屏和FOUC async和defer的作用是什么?有什么区别 简述...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? css放在head中,用link标签引入: JS放在body中,且在所有...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? CSS要放头部head中的link标签内引入。js文件要放在 标签中,...

  • JS相关概念

    JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型? 判断一个变量是否是数字、字符串、布尔...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? css放到head标签内 js一般放到body尾部,因为js会涉及dom...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? 一般将css放置head里用包裹,也可以使用link标签引入。js一般使...

  • JS相关概念

    1,CSS和JS在网页中的放置顺序是怎样的? 网站加载的整个完整过程是:1、首先浏览器从服务器接收到html代码,...

  • JS相关概念

    CSS和JS在网页中的放置顺序是怎样的? CSS写在HTML文件中的 标签内的 中,JS写在HTML中 标签...

  • JS相关概念

    1. CSS和JS在网页中的放置顺序是怎样的? css放在head标签内,防止渲染时出现白屏 js放在最后body...

  • JS相关概念

    1.CSS和JS在网页中的放置顺序是怎样的? css 一般放在head标签内,用 标签包裹,或者用link引入外部...

网友评论

      本文标题:js相关概念

      本文链接:https://www.haomeiwen.com/subject/czzvpxtx.html