Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何在计算css之前暂停浏览器渲染?_Html_Dom - Fatal编程技术网

Html 如何在计算css之前暂停浏览器渲染?

Html 如何在计算css之前暂停浏览器渲染?,html,dom,Html,Dom,我想强制浏览器在呈现页面之前等待所有css的计算 我的目标是避免在纯html呈现和css呈现之间出现“视觉故障”效应(如前所述)。我的目标也是简单地了解是否以及如何在浏览器上获得这种级别的控制 这是否可能,以及如何实现?最好的建议是将CSS文件加载到页面的头部,并在结束正文之前加载JS 如果你已经这样做了,那么看看开发者工具(在Chrome中)的网络标签,看看网络是否延迟了CSS文件的交付。我认为在标准意义上你无法避免你所说的“小故障”。也许有软件可以以某种方式为您的文件提供服务,但即使这是可能

我想强制浏览器在呈现页面之前等待所有css的计算

我的目标是避免在纯html呈现和css呈现之间出现“视觉故障”效应(如前所述)。我的目标也是简单地了解是否以及如何在浏览器上获得这种级别的控制


这是否可能,以及如何实现?

最好的建议是将CSS文件加载到页面的头部,并在结束正文之前加载JS


如果你已经这样做了,那么看看开发者工具(在Chrome中)的网络标签,看看网络是否延迟了CSS文件的交付。

我认为在标准意义上你无法避免你所说的“小故障”。也许有软件可以以某种方式为您的文件提供服务,但即使这是可能的,这有多过分

现在大多数浏览器加载HTML和CSS的速度如此之快,你甚至都不会注意到

如果您遇到了小故障问题,可能与此后下载到页面的资产有关,而事实上与CSS本身无关

想想像图像、脚本甚至网页字体这样的资产。这些也需要加载。如果您的页面设计依赖于这些资产以某种方式实现布局,那么它当然会有轻微的故障影响,因为它需要加载

我认为几乎不可能计算CSS何时加载,因为这是在流程的“客户端”完成的。你不能真的预测人们的浏览器和互联网速度,以至于你可以在准备好的时候提供服务

如果您遇到字体渲染(跳跃)问题,请参阅本文:

如果与此无关,我强烈建议您重新思考您的页面是如何组合的


希望这能在某种程度上有所帮助。

这是一个老问题,但当我试图找出如何防止“页面闪烁”时发现了它——在CSS“生效”之前,你会看到没有CSS的HTML内容在短时间内完全应用

这里提到了几种技术。这段代码对我起到了防止“闪烁”的作用:

<link rel="preload" href="mystylesheet.css" as="style" onload="this.rel='stylesheet'">
<!-- for browsers without JavaScript enabled -->
<noscript><link rel="stylesheet" href="mystylesheet.css">
</noscript>


如何构建您的页面?如果您的css文件只在head元素中导入,那么应该没有问题。你有一个小页面的链接来展示这种效果吗?你确定没有看到外部元素(如图像)在加载后被调整大小吗?你在哪个浏览器中观察到了这种情况?@dystroy我在head元素中引用了我的css文件。据我所知,浏览器会不断更新页面(我在使用Google Speed Tracer工具时会看到几十个“绘制”事件),因此,如果css需要1秒时间下载,我会看到问题,这是有道理的,不是吗?@Mikey Cee Chrome andIE@tucson . 事实上,它说,如果你不想渐进式渲染,你最好不要把你的css放在头上。。。