大家推荐一个网站(css-loaders.com),这个网站真的是特别好用,将来同学在开发项目的时候基本上都需要用到各种各样的加载状态,各种各样的加载动画。这个网站就提供了各种各样的加载动画,而且用起来超级简单,就不可能不会用,特别简单。
大家看到了吗?这么一堆的加载中动画就很方便,而且我告诉你怎么用。举个例子,比如这个,大家看我喜欢想要哪个动画,只需要把鼠标放上去,有一个叫copy the CSS,把它的CSS样式复制下来。
然后去干什么?找到代码,这是一个空的文件,直接Ctrlv粘贴,它就能自动的把刚才所看中动画的样式给复制进来了。对于页面来说就只需要加一个div,这个div在这就加一个class,名字为loader的DIV,这样一个加载中动画就有了。
然后就直接打开看一下,大家会看到了吗?这个动画就有了,特别方便。想换成别的样式的就随便切换就行了。只要有DIV,将来想用什么动画就直接copy它的CSS样式,比如这个,再复制一下,点击一下就行了。把之前的样式删掉,再粘进来,刚才复制过来的,再粘贴,动画也就出来了。
是不是特别的好用?而且这里面的动画效果特别多,能够让网页变得非常炫酷。这些足够用了,真的是多的不能再多了,给我看的都眼花缭乱了。这样一个闹钟的效果,什么样的都有。而且做的很简单,只需要替换掉CSS,有这样一个div,效果就有了。
看到了吗?各位,就这个网站的,必须收藏,真的好用。
SS加载确实有可能阻塞页面加载,但这并非绝对,具体取决于CSS的加载方式、应用位置以及浏览器的渲染机制。在了解CSS加载如何影响页面加载之前,我们先要明白浏览器渲染页面的基本流程。
浏览器在加载网页时,会按照从上到下的顺序解析HTML文档。当浏览器遇到`<link>`标签引用外部CSS文件时,它会停止HTML的解析,转而加载并应用这个CSS文件。这个过程被称为CSS阻塞。因此,如果这个CSS文件很大或者加载速度很慢,用户可能会看到一个空白页面,直到CSS文件完全加载并应用。
然而,有几种方法可以避免或减轻CSS加载对页面加载的阻塞:
此外,值得注意的是,现代浏览器通常具有一些优化机制,如并行下载、缓存等,这些都可以帮助减少CSS加载对页面加载的影响。
总的来说,CSS加载确实有可能阻塞页面加载,但通过一些优化策略和技术,我们可以减轻或避免这种阻塞。选择哪种策略取决于你的具体需求和约束。
能大家都知道,js执行会阻塞DOM树的解析和渲染,那么css加载会阻塞DOM树的解析和渲染吗?接下来,我们就一起来分析一下。
那么为什么会出现上面的现象呢?我们从浏览器的渲染过程来解析下。
不同的浏览器使用的内核不同,所以他们的渲染过程也是不一样的。目前主要有两个:
webkit渲染过程
Gecko渲染过程
从上面两个流程图我们可以看出来,浏览器渲染的流程如下:
从流程我们可以看出来
对于浏览器来说,页面加载主要有两个事件,一个是DOMContentLoaded,另一个是onLoad。而onLoad没什么好说的,就是等待页面的所有资源都加载完成才会触发,这些资源包括css、js、图片视频等。
而DOMContentLoaded,顾名思义,就是当页面的内容解析完成后,则触发该事件。那么,正如我们上面讨论过的,css会阻塞Dom渲染和js执行,而js会阻塞Dom解析。那么我们可以做出这样的假设
我们先对第一种情况做测试:
<!DOCTYPE html> <html lang="en"> <head> <title>css阻塞</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <script> document.addEventListener('DOMContentLoaded', function() { console.log('DOMContentLoaded'); }) </script> <link href="https://cdn.bootcss.com/bootstrap/4.0.0-alpha.6/css/bootstrap.css" rel="stylesheet"> </head> <body> </body> </html>
实验结果如下图:
从动图我们可以看出来,css还未加载完,就已经触发了DOMContentLoaded事件了。因为css后面没有任何js代码。
接下来我们对第二种情况做测试,很简单,就在css后面加一行代码就行了
<!DOCTYPE html> <html lang="en"> <head> <title>css阻塞</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <script> document.addEventListener('DOMContentLoaded', function() { console.log('DOMContentLoaded'); }) </script> <link href="https://cdn.bootcss.com/bootstrap/4.0.0-alpha.6/css/bootstrap.css" rel="stylesheet"> <script> console.log('到我了没'); </script> </head> <body> </body> </html>
实验结果如下图:
我们可以看到,只有在css加载完成后,才会触发DOMContentLoaded事件。因此,我们可以得出结论:
由上所述,我们可以得出以下结论:
因此,为了避免让用户看到长时间的白屏时间,我们应该尽可能的提高css加载速度,比如可以使用以下几种方法:
*请认真填写需求信息,我们会在24小时内与您取得联系。