当我使用Google Page Speed Insights
时它说我的CSS是渲染阻止的,因此减慢了页面的初始加载速度。在以前的项目中,我使用Javascript动态添加了CSS,这很好地推迟了加载。那么在使用bundle时防止渲染阻塞的最佳方法是什么?
在bundle.config中我有:
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/site.css"
));
在_Layout.cshtml中
@Styles.Render("~/Content/css")
答案 0 :(得分:10)
我通过使用以下HTML找到了解决方案:
<script type="text/javascript">
function load_css_async(filename) {
var cb = function () {
var l = document.createElement('link'); l.rel = 'stylesheet';
l.href = filename;
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>
@Styles.RenderFormat("<script type=\"text/javascript\">load_css_async('{0}')</script>", "~/Content/css")
这让我在Page Insights中获得了100/100:)