如何避免FOUC
时间:2022-07-24
本文章向大家介绍如何避免FOUC,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
如何避免FOUC
FOUC
即无样式内容闪烁也可以称为文档样式短暂失效,主要就是指HTML
已加载而样式表并未加载,此后样式表再加载而产生的闪烁现象。
样式表前置
根据浏览器渲染的顺序,将CSS
在<head>
中引入或者嵌入,相对于将CSS
放到<body>
或者页面底部来说,可以使页面渲染速度加快,这对于页面内容比较丰富的网站或者网络链接较慢时相当重要。假如将样式表放置于底部,就会导致浏览器还未加载样式表就开始渲染页面,无法渐进式渲染页面而直接从无样式状态立即跳转到有样式状态,就会造成FOUC
,用户体验较差;此外有些浏览器可能会在CSS
下载完成后才开始渲染页面,样式表放在下方会导致页面渲染推迟。
尽量避免使用@import
尽量使用<link>
而避免使用@import
,当HTML
文件被加载时,<link>
引用的文件会同时被加载,而@import
引用的文件则会等页面全部下载完毕再被加载,所以有时候浏览@import
加载CSS
的页面时会没有样式,会出现FOUC
现象,网速慢的时候就比较明显。此外当<link>
与@import
混用可能会对网页性能有负面影响,在一些低版本IE
中<link>
与@import
混用会导致样式表文件逐个加载,破坏并行下载的方式导致页面加载变慢。此外无论是哪种浏览器,若在<link>
中引入的CSS
中继续使用@import
加载外部CSS
,同样会导致顺序加载而不是并行加载,因为浏览器需要先解析<link>
引入的CSS
发现@import
外部CSS
后再次引入外部CSS
,这样就导致页面加载变慢。
每日一题
https://github.com/WindrunnerMax/EveryDay
参考
https://www.cnblogs.com/xianyulaodi/p/5198603.html
- 你的密码被破解了?看看你的Apple ID、邮箱密码是不是这些!
- Oozie分布式任务的工作流——脚本篇
- hexo配置自己的博客站点
- Oozie分布式任务的工作流——Sqoop篇
- realloc invalid pointer错误解析
- qsort(),sort()排序函数
- 前端打包成桌面应用、以及chrome扩展
- Oozie分布式任务的工作流——Spark篇
- vue 实现 tomato timer(蕃茄钟)
- Linux下TCP连接过程总结
- PHP常用库函数介绍+常见疑难问题解答
- AcFun×讯飞输入法AI方言保护计划 用方言打破次元壁
- directshow、 Emgucv入门
- assert()函数用法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 表达量矩阵分组很复杂也可以使用limma的3大策略
- 一日一技:loguru 如何把不同的日志写入不同的文件中
- 如何迁移SSDB数据到Tendis解决方案
- 第40期:Keep Balance,平衡二叉树!
- 第38期:BST 的搜索(小白必看)
- 第39期:小白一看就会的 BST 删除!
- 基于OpenCV的区域分割、轮廓检测和阈值处理
- 基于OpenCV的实用图像处理操作
- LDAP 中 DN CN DC OU
- Spring Boot入门系列(十九)集成mybatis
- 当我们做后仿时我们究竟在仿些什么(四)
- Scala学习一
- kafka学习二 -发送消息
- 【ACL2020】使用问题图生成解决multi-hop复杂KBQA
- R语言实现DNA结构预测