Javascript 如何使用Google Page Speed CSS加载脚本延迟多个CSS文件

Javascript 如何使用Google Page Speed CSS加载脚本延迟多个CSS文件,javascript,Javascript,我使用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.

我使用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>

var cb=函数(){
var l=document.createElement('link');
l、 rel=‘样式表’;
l、 href='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窗口。addEventListener('load',cb);
我怎样才能推迟这些脚本

<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);
}
var loadCSSFiles=function(){
var links=[“//example.com/css/custom.css”、“//font.googleapis.com/css?family=PT+Sans”、“//maxcdn.bootstrapcdn.com/font awesome/4.3.0/css/font awesome.min.css”],
headElement=document.getElementsByTagName(“head”)[0],
林克伦,我;
对于(i=0;i

注意:我将
insertBefore
更改为
appendChild
,前者似乎不正确,因为它会将样式表放在文档头之外。

有什么意义?任何在页面呈现后加载CSS的技巧都会导致未设置样式的内容闪烁。@SalmanA您好,您可以在这里阅读。你知道这个问题的答案吗?根据这个例子,你可以修改cb函数,使用循环加载你想要的样式表。但是FOUC的问题仍然存在。@SalmanA是的,先生,问题是代码看起来如何。你介意回答吗?这东西真的有用吗?因为我在“PageSpeed建议”部分也做了同样的工作,所以我有同样数量的建议——更多的是,当我打开“PageSpeed Insights”时,我遇到的问题甚至比之前更多。对我来说,唯一有效的方法是在我在head部分声明的specific方法之上附加一个带有此方法的样式