【问题标题】:Eliminate render-blocking JavaScript and CSS - advice needed消除阻塞渲染的 JavaScript 和 CSS - 需要建议
【发布时间】:2014-01-02 21:40:01
【问题描述】:

Google PageSpeed Insights 将此标记为我应该解决的问题 - 我已阅读 https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery 上关于优化 CSS 交付的指南,但我对最佳实践是什么以及哪些资源被渲染阻塞和哪些不是?

Google 是否建议从页面头部删除样式表链接并替换为内联样式以使 something 呈现,然后在 window.onload 触发时使用 Javascript 触发外部样式表加载?这不会延迟到达“正确呈现”页面的过程吗?浏览器尽快开始下载 CSS 不是更好吗?

【问题讨论】:

    标签: javascript css render pagespeed


    【解决方案1】:

    是的,这就是您所引用的页面所推荐的内容。在<style> 标记内的HTML 标记中直接放置最少量的CSS(只要是少量)。然后在文档末尾包含完整的样式集。 (在示例中,它实际上并不是通过 JavaScript 本身加载的;相反,外部样式表的链接放置在 <noscript> 标记中。这有点小技巧,但它可以完成工作。您也可以请求通过 AJAX 的样式表并直接使用 JavaScript 注入。)

    这种方法只有在您可以隔离页面所需的最少 CSS 并且 CSS 数量相当少的情况下才有效。例如,如果您正在构建一个单页 Web 应用程序,那么您的许多 CSS 规则可能适用于应用程序的某些部分,而不是初始视图。在这种情况下,这些额外的规则可以放在外部样式表中。或者,您可能有一套严格针对弹出对话框的规则。这些规则也可以推迟。

    如果您不能真正将您的规则区分为最初需要的规则和不需要的规则,并且如果您的最小规则集很大,则无法利用这种方法。

    【讨论】:

    • 谢谢斯蒂芬 - 是的
    • 正确。如果用户有 JavaScript,那么您可以通过 AJAX 加载外部样式表
    猜你喜欢
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    相关资源
    最近更新 更多