Jquery 仅当模板完全完成渲染时加载CSS

Jquery 仅当模板完全完成渲染时加载CSS,jquery,css,render-blocking,Jquery,Css,Render Blocking,根据Google Page Speed Insights,我有一个指向boostrap样式表cdn的链接,该链接导致了一些渲染阻塞问题,从而影响了我的网站性能。我解决了这个问题,只需要将上面需要的折叠引导css放入“critic_bootstrap.css”文件中。当页面完全呈现时,我确实希望为所有其他不在折叠之上的样式加载引导CDN。我怎样才能做到这一点?我尝试在jquery document.ready函数中将其附加到文档的头部,但它似乎仍然会导致PSI呈现阻塞问题,就像在呈现页面之前加载它

根据Google Page Speed Insights,我有一个指向boostrap样式表cdn的链接,该链接导致了一些渲染阻塞问题,从而影响了我的网站性能。我解决了这个问题,只需要将上面需要的折叠引导css放入“critic_bootstrap.css”文件中。当页面完全呈现时,我确实希望为所有其他不在折叠之上的样式加载引导CDN。我怎样才能做到这一点?我尝试在jquery document.ready函数中将其附加到文档的头部,但它似乎仍然会导致PSI呈现阻塞问题,就像在呈现页面之前加载它一样。

使用

<link rel="preload" href="mystyles.css" as="style" onload="this.rel='stylesheet'">
您可以在上面折叠CSS,并在
async
CSS中使用

body {
  overflow:auto;
}
以上只是一个总结。如果您感兴趣,这里有一篇关于方法的完整文章,其中还包含一个用于不支持浏览器的polyfill

与其他方法相比,这看起来并不是一个很大的改进,但rel=“preload”带来的一个优势是,支持浏览器将比使用不匹配媒体值的样式表更早地开始下载文件

也读。对
rel=“preload”
的支持仅限于Chrome、Opera和Safari,但随后会有更多(尤其是Firefox v59)。而且,如果不支持它,并不意味着它不工作。这只意味着与使用不存在的
rel
类型相比没有任何改进。

使用

<link rel="preload" href="mystyles.css" as="style" onload="this.rel='stylesheet'">
您可以在上面折叠CSS,并在
async
CSS中使用

body {
  overflow:auto;
}
以上只是一个总结。如果您感兴趣,这里有一篇关于方法的完整文章,其中还包含一个用于不支持浏览器的polyfill

与其他方法相比,这看起来并不是一个很大的改进,但rel=“preload”带来的一个优势是,支持浏览器将比使用不匹配媒体值的样式表更早地开始下载文件

也读。对
rel=“preload”
的支持仅限于Chrome、Opera和Safari,但随后会有更多(尤其是Firefox v59)。而且,如果不支持它,并不意味着它不工作。这只意味着与使用不存在的
rel
类型相比没有任何改进。

尝试以下方法:

$(document).ready(function(){
   $('head').append('<link rel="stylesheet" type="text/css" href="bootstrap.css">');
}
$(文档).ready(函数(){
$('head')。追加('');
}
试试这个:

$(document).ready(function(){
   $('head').append('<link rel="stylesheet" type="text/css" href="bootstrap.css">');
}
$(文档).ready(函数(){
$('head')。追加('');
}

尝试在
$(窗口)加载css。加载()
而不是
$(文档)。就绪()

例如:

  $(window).load(function() {
          $('head').append('<link rel="stylesheet" href="common.css" type="text/css" />');
    });
$(窗口).load(函数(){
$('head')。追加('');
});

尝试在
$(窗口)加载css。加载()
而不是
$(文档)。就绪()

例如:

  $(window).load(function() {
          $('head').append('<link rel="stylesheet" href="common.css" type="text/css" />');
    });
$(窗口).load(函数(){
$('head')。追加('');
});

从技术上讲,所有CSS都需要在加载页面内容之前呈现,因为浏览器知道如何设计elemI猜你是对的哈。如果我在html元素底部添加who引导CDN,它会在呈现上述折叠内容后呈现吗?尝试此链接:@KannanK给出了更好的建议。good job dude!是的,从你的链接KannanK尝试了这个解决方案,它提高了页面速度!从技术上讲,所有CSS都需要在加载页面内容之前呈现,因为浏览器知道如何设计elemI猜你是对的哈。如果我在html元素的底部添加who引导CDN,它会在上述内容之后呈现吗折叠内容已呈现?请尝试此链接:@KannanK给出了更好的建议。干得好,伙计!是的,尝试了来自您的链接KannanK的解决方案,提高了页面速度!