使用较少(css预处理器)服务器端或客户端

时间:2012-03-18 11:02:49

标签: client-side server-side less

在实时制作环境中使用较少服务器端与客户端的优缺点是什么?为什么我要将我的较少转换为静态css并在上线时使用它?据我所知,css被缓存在服务器和客户端,所以速度不应该是一个问题,并且js不可用不是一个问题,因为我的应用程序非常依赖于JavaScript,所以如果它不可用我会有更大的问题。我不完全理解服务器端编译的工作原理....谢谢

2 个答案:

答案 0 :(得分:25)

我参与了一个使用LESS的大型项目。我们在客户端(在开发环境中)编译时遇到的主要问题是,由于客户端编译需要JavaScript并且打印会在不启用JavaScript的情况下将页面呈现为纸张,因此每当有人打印页面时,它都会完全没有问题。即使你的应用程序使用了大量像我们这样的JavaScript,如果你想支持打印,你需要编译服务器端或提供静态CSS。

最适合我们的解决方案是在开发环境中运行node.js来动态编译LESS服务器端,然后在将站点部署到生产环境时将其预编译为单个gzip压缩文件。< / p>

预编译还减少了客户端单个文件请求的数量,从我们的案例中每页数十个(每个LESS文件一个)到单个CSS文件,并通过避免编译步骤(这使得加载更快)客户端less.js必须每次在页面开始渲染之前导航到新页面时运行。)

我不建议在实时生产环境中动态编译服务器端,因为这会增加许多不必要的处理器负载。如果你事先编译它,它将不会消耗比单个普通CSS文件更多的服务器资源。

答案 1 :(得分:3)

浏览器只能缓存从服务器接收的数据。这样做包括浏览器中编译的CSS from less(除了HTML5本地存储机制)。这意味着浏览器必须在每次加载时将较少的文件编译为CSS - 即使较少的文件是从浏览器缓存而不是从服务器加载的。