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

new*_*_86 18 server-side client-side less

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

Ric*_*her 25

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

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

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

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


abe*_*sto 5

浏览器只能缓存它从服务器接收到的数据。这并没有包括来自以下(HTML5本地存储空间的机制除外)在浏览器中编写的CSS。这意味着浏览器每次加载时都必须将较少的文件编译为 CSS - 即使较少的文件是从浏览器缓存而不是从服务器加载的。