如何使用谷歌页面速度CSS加载脚本延迟多个CSS文件
How to defer multiple CSS files with Google Page Speed CSS load script
我使用Google Page Speed CSS加载脚本来延迟我较大的css文件。
<script async>
var cb = function() {
var l = document.createElement('link');
l.rel = 'stylesheet';
l.href = '<?php echo $root; ?>css/custom.css';
var h = document.getElementsByTagName('head')[0];
h.parentNode.insertBefore(l, h);
};
var raf = requestAnimationFrame || mozRequestAnimationFrame || webkitRequestAnimationFrame || msRequestAnimationFrame;
if (raf) raf(cb);
else window.addEventListener('load', cb);
</script>
如何也延迟这些脚本?
<link href='http://fonts.googleapis.com/css?family=PT+Sans' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
扩展代码示例:
var loadCSSFiles = function() {
var links = ["//example.com/css/custom.css", "//fonts.googleapis.com/css?family=PT+Sans", "//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"],
headElement = document.getElementsByTagName("head")[0],
linkElement, i;
for (i = 0; i < links.length; i++) {
linkElement = document.createElement("link");
linkElement.rel = "stylesheet";
linkElement.href = links[i];
headElement.appendChild(linkElement);
}
};
var raf = requestAnimationFrame || mozRequestAnimationFrame || webkitRequestAnimationFrame || msRequestAnimationFrame;
if (raf) {
raf(loadCSSFiles);
} else {
window.addEventListener("load", loadCSSFiles);
}
注意:我将insertBefore
更改为appendChild
,前者似乎不正确,因为它会将样式表放在文档头之外。
相关文章:
- 如何为.css状态的更改添加延迟
- jQuery addClass中断延迟,或者jQuery延迟中断CSS转换,或者两者兼而有之
- 如何使用谷歌页面速度CSS加载脚本延迟多个CSS文件
- CSS使悬停延迟
- AngularJS正在等待CSS延迟加载
- CSS动画延迟的原因
- 向每个列表项添加延迟的 CSS 动画
- CSS 动画延迟从 # 的子项
- 如何延迟加载 css 中给出的 svg 图像
- jQuery延迟链接css属性
- JavaScript/CSS:向DOM添加元素和应用其CSS规则之间的延迟
- JQuery延迟更改CSS颜色
- 延迟加载css文件
- jQuery.css():属性中是否存在固有延迟's对元素的应用程序
- CSS下拉菜单:添加鼠标退出延迟
- Jquery/CSS:如何在mouseenter事件上应用延迟1秒的addClass
- 如何在JS执行后延迟CSS和脚本加载
- 使用jquery延迟css转换
- jQuery设置css属性延迟淡出
- 自动cookie条纯CSS工作良好,但需要延迟