【问题标题】:Prevent loading of entire CSS stylesheet - only load needed content?防止加载整个 CSS 样式表 - 只加载需要的内容?
【发布时间】:2014-10-15 16:51:19
【问题描述】:

我正在尝试提高我的网站速度,因为我将购买的主题的某些功能集成到我的网站中,并在所述主题的网站上发现了这个有趣的功能。

我现在遇到的问题是我的 CSS 样式表非常庞大(220kb)并且需要很长时间(3-4 秒)才能加载。我正在努力减少这种情况,但那是另一回事......

当我尝试在主题开发者的网站上加载完全相同的页面时,它的加载速度要快得多。经过检查,在我的网站上,我发现开发工具中样式表的“大小”和“内容”数量大致相同。

在开发者页面上,大小比内容小很多。这是否意味着只有在 HTML 中调用的元素才从样式表中下载?如果是的话,如何做到这一点,因为它听起来非常有效。

我还认为这是因为开发者的页面正在缓存我浏览器上的内容,但我禁用了缓存,它仍然只加载部分内容。

顺便说一句,我的网站缓存有效,我只是想加快初始加载时间。

有什么想法吗?

相关图片:

缓存禁用:

Dev 的网站尺寸/内容比例较小 - http://i.imgur.com/B3uhOWF.png

我的网站大小/内容比例约为 1:1 - http://i.imgur.com/Ymu2YRz.png

【问题讨论】:

    标签: html css caching page-load-time


    【解决方案1】:

    在我的脑海中,你可以缩小你的 CSS。周围有一些免费工具,包括适用于 Chrome 的 Page Speed Insights。

    https://developers.google.com/speed/docs/insights/MinifyResources

    您的 CSS 似乎已经在一个缩小的文件中,但内容可能不是!


    只是为了让人们不会感到困惑。解决方案是在服务器上启用 gzip,您可以在 https://developers.google.com/speed/articles/gzip 阅读更多信息(但仍要缩小您的 css)。

    【讨论】:

    • Holy F### 感谢那篇文章,我刚刚启用了 GZip。这就是我的感受:stream1.gifsoup.com/webroot/animatedgifs2/1365838_o.gif 谢谢你的精彩帖子
    • 我的荣幸。 GZip 赢了!
    • 关于 GZip 的一个快速问题 - 这是 100% 在我的服务器上,对吗?那么客户端不需要对文件的 GZipped 版本的支持吗?不管他是否使用过时的浏览器/计算机/配置访问该站点,无论如何他都会收到压缩版本,对吧? (假设我的网站可以在过时的浏览器/操作系统上运行而不会出现问题。)
    • 是的(大部分情况下),浏览器识别为支持 gzip,如果服务器启用了 gzip,那么它会发送一个 gzip 压缩页面,否则它将发送一个正常服务的页面。看到这个>developers.google.com/speed/articles/gzip
    【解决方案2】:

    感谢用户 worldofjr,我在服务器上找到了启用 GZIP 的答案。

    令人难以置信的速度提升。

    每当有人注册虚拟主机时,都应该阅读该内容。我不敢相信我的网站已经 1 年没有这个了,因为它需要 2 秒才能启用!!!

    【讨论】:

      【解决方案3】:

      “在开发者的页面上,大小比内容小得多。这是否意味着只有 HTML 中调用的元素从样式表中下载?如果是,如何实现这一点,因为这听起来非常高效。”

      这通常不是 css 的工作方式。即使您确实以某种方式实现了它,您所描述的内容也可能不是很有效。服务器必须知道要发送哪些样式,这需要浏览器加载页面并发送到它的列表中,服务器必须生成自定义 css 并将其发送回......

      你当然可以限制哪些 css 加载到哪里——而且你应该这样做。但这必须手动完成,至少根据我的经验。

      无论如何,在您继续之前需要考虑一些事项:

      我认为 200k 对于样式表来说真的非常非常大。我工作的大多数网站的 CSS 总重量可能是 20k。或更少。我会调查为什么你的这么大。也许出了什么问题。缩小可能会有所帮助,但它不会让你失望一个数量级。

      但是,即使它是世界上最大的 CSS 文件,200k 也不是那么大。不是4-5秒大。我现在正在一个网站上工作,其中整个页面重约 350kb,我可以在一秒钟内加载它。同样,我怀疑还有其他问题。该 CSS 的大小可能表示某些东西,但我怀疑这不仅仅是文件下载所花费的时间。

      【讨论】:

      • global.css 文件如此庞大的原因是因为这是我正在研究的主题。因此,它们对那里的每个元素都有所有可能的排列,并且命名方案很糟糕(例如,xx-section-borders-has-borders-green-outline 然后列出了 20 种不同颜色的变体列表等)。我一直在有选择地从那里提取我需要的项目并将它们集成到我的特定站点的较小的全局文件中。在任何压缩之前,我当前的文件大约为 63KB。那是在我的排版文件和特定插件样式表之前......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      • 2013-09-01
      • 1970-01-01
      相关资源
      最近更新 更多