预编译更快吗?

时间:2014-11-13 15:35:59

标签: css less

所以我想知道对于我来说,对于页面速度是否更好,预编译我更少的样式表而不是使用less.js.通过谷歌页面速度测试后,我注意到我在预编译后实际上下了几个点。据我所知,它应该对用户要求不高。但我想我错了?还有什么我应该考虑的吗?缩小css也是一种选择,但我认为这不会产生相当大的影响。

感谢。

1 个答案:

答案 0 :(得分:2)

我认为您应该更改问题的标题,例如“预编译Less会产生更好的页面速度得分吗?”

如果可能取决于您的Less代码的大小。通常,页面速度要求您首先加载可读的内容,然后加载非关键的CSS和JavaScript。

当您在一个大的CSS文件中编译所有Less代码时,页面速度会抱怨您应该首先加载关键CSS(首选在源代码中执行此操作(不需要额外的http请求))。

使用less.js编译客户端时,已编译的CSS代码将插入源代码中,但需要两个http请求(编译器和较少的文件)。较少的代码可以比编译的CSS小。但是你必须加载编译器(可能来自CDN)。

但总体而言,您应该意识到客户端编译器必须为每个页面请求再次编译Less代码。客户端编译需要时间,因此在大多数情况下会产生糟糕的用户体验。

  

缩小css也是一种选择,但我不认为这会产生相当大的影响   差。

缩小减少必须发送的字节数,因此始终有助于加快网站加载速度。

一些测试

当我加载一个简单的页面:

<link href="css/bootstrap.min.css" rel="stylesheet">

我发现网页速度得分为95/100,必须修复:

  

优化以下内容的CSS传递:   http://example.com/css/bootstrap.min.css

当我用:

加载同一页面时
   <link rel="stylesheet/less" type="text/css" href="less/bootstrap.less" />
   <script src="//cdnjs.cloudflare.com/ajax/libs/less.js/2.0.0/less.min.js"></script>

我发现网页速度得分为91/100,必须修复:

  

删除渲染阻止JavaScript:   http://cdnjs.cloudflare.com/ajax/libs/less.js/2.0.0/less.min.js

虽然第二种情况必须做很多http请求(加载所有较少的代码)并运行代码客户端,但得分并不低(并且仍然足够好)。

如果在第一种情况下没有优化CSS,例如缩小代码并设置正确的缓存标题,那么页面速度得分将进一步降低。

总而言之,是的,您应该预编译您的Less代码并缩小CSS代码以获得更好的用户体验,并且页面速度并不总是预测用户体验。