每日一问(2)

42 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第32天,点击查看活动详情

6.使用link和@import导入样式的区别

可以通过link和@import引入CSS资源文件,但是具有一下的不同点:

性质不同,link是xhtml标签,无兼容性问题,可用于加载CSS文件的同时还可以进行RSS信息聚合等事务,而@import属于CSS范畴,在CSS2时提出,低版本浏览器不支持,只能用于加载CSS文件;
​
加载时间不同,link引用CSS随页面载入时同时加载,@import需要在页面加载完毕后被需要时才会加载;
​
写法不同,link是写在head标签中,而@import在html中只能写在style标签中;
​
样式权重不同,link引用的样式权重高于@import;

7.无样式内容闪烁(FOUC)

无内容闪烁英文称为Flash of Unstyle Content,@import需要在页面加载完毕后被需要时才会加载,因此页面DOM加载完成到CSS导入完成之间会有一段时间页面上的内容是没有样式,解决方法是使用在head中使用link标签加载CSS样式表,文档按顺序载入,body渲染完成后link早已加载完成,所以不会出现FOUT问题。

8.浏览器内核引擎

浏览器内核主要分成两部分,渲染引擎和JS引擎,渲染引擎负责页面内容(HTML、XML、图像等)输出到网页中,浏览器的内核不同渲染的效果也不同;JS引擎则是解析和执行javascript进而实现网页的动态效果,且两者越来独立化。

9.HTML5中manifest离线缓存

开启离线缓存,当浏览器发现HTML头部有manifest属性,进行请求manifest文件,首次访问浏览器就会根据manifest文件的内容下载相应的资源并进行离线存储。如果资源没有发生改变,则浏览器直接读取manifest中离线缓存的文件进行渲染,具体文件内容如下:
CACHE MANIFEST
CACHE:
/logo.gif
NETWORK:FALLBACK:
offline.html
​

10.页面可见性API用途

通过监听visibilityState的属性值进行检测页面是否可见以及打开网页时的一些日志,根据监听document的visibilitychange事件检测用户是否切屏,锁屏,退出等状态,用于切换页面则视频停止播放等场景。