版权作品,未经《短文学》书面授权,严禁转载,违者将被追究法律责任。

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

网站加载的整个完整过程是:1、首先浏览器从服务器接收到html代码,然后开始解析html。2、构件DOM树(根据Html代码自顶向下进行构件),并且在同时构件渲染树。3、遇到js文件加载执行,将阻塞DOM树的构建,遇到css文件,将阻塞渲染树的构建。(script标签中的defer属性:构建DOM树的过程和js文件的加载异步(并行)进行,但是Js文件执行需要在DOM树构建完成之后。
script标签中的async属性:构建DOM树、渲染树的过程和js文件的加载和执行异步(并行)进行。)
从以上过程可以知道,当Js文件放在head中时,浏览器构建DOM树的时候遇到Js文件加载会阻塞,也就是说,浏览器不会加载body中的标签,一旦这个Js文件的数量和内容都比较大,那么就会造成刚刚遇到的情况,就不会给用户一个十分良好的可视化回馈,而在前端开发中,给予用户的可视化回馈是十分重要的。
综上,script标签最好放在</body>标签的前面
,因为放在所有body中的交钱后面就不会出现网页加载时出现空白的情况,可以持续的给用户提供视觉反馈,同时在有些情况下,会降低错误的发生。
而css标签应该放在<head></head>标签之间,因为如果放在</body>标签的前面,那么当DOM树构建完成了,渲染树才构建,那么当渲染树构建完成,浏览器不得不在重新渲染整个页面,这样就造成了资源的浪费,小绿叶不高。

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

  • CSS一般放在HTML的头部,也就是head标签里面,这样做的好处是避免因为CSS未加载而造成的白屏效果,HTML中,代码是从上到下依次解析的,如果CSS放在后面,那么加载完HTML的时候CSS还没有加载,HTML无法被渲染,网页出现白屏效果,当CSS加载完之后,HTML才会变成加载完样式之后的效果。
  • JS一般放在HTML的尾部,也就是body闭合标签的前面,这样做的好处是可以避免JS出现没有效果的现象,想象一下,假如JS放在前面,我的HTML还没加载完,我的JS怎么去控制还没有加载出来的HTML标签或者CSS效果?另外一个原因就是白屏,当JS文件较大,却放在HTML头部,JS加载时(非异步情况),其他文件都会暂停加载,导致在JS加载的这段时间内,DOM树和CSSOM树都没有渲染,屏幕白屏。

当岁月的泪眸望着 跳过树痕的伤口 流出的却是紫牵牛 那时我把她放在
离别的路口,目送着 当春风刮走夕阳 那一点破‘碎时光 青烟吹寒柳风
我便如约而至 你已成长满是树的花 你那飘逸的心话 轻轻诉说着那
春光月色的思念 我沉默不语把你 放在装满茶叶的青竹里

4.简述网页的渲染机制

1.首先网页的渲染机制其实就是浏览器的渲染机制,网页的渲染机制是由浏览器的特性来决定的。不同的浏览器有不同的渲染机制,两种典型的代表就是chrome浏览器和firefox浏览器,另外IE的浏览器与chrome的浏览器渲染机制类似。
2.chrome浏览器的渲染过程:

  • 解析HTML,构建DOM树
  • 解析CSS,构建CSSOM树
  • 把DOM和CSSOM组合成渲染树(render tree)
  • 在渲染器的基础上进行布局,计算每个节点的几何结构
  • 把每个节点绘制到屏幕上(painting)

3.firefox浏览的渲染过程:

  • 解析HTML,构建DOM树
  • 绘制HTML内容
  • 解析CSS,构建CSSOM树
  • 把DOM和CSSOM组合成渲染树(render tree)
  • 在渲染器的基础上进行布局,计算每个节点的几何结构
  • 给所有的HTML内容添加样式

发表评论

电子邮件地址不会被公开。 必填项已用*标注