在生产环境中,使用客户端和服务器端的优缺点是什么?为什么要将less转换为静态CSS并在上线时使用它呢?据我了解,CSS会被服务器端和客户端缓存,因此速度不应该是一个问题,如果JS不可用,那也不是个问题,因为我的应用程序非常依赖于JavaScript,所以如果JavaScript不可用,我会有更大的问题。我不完全理解服务器端编译是如何工作的......谢谢
在生产环境中,使用客户端和服务器端的优缺点是什么?为什么要将less转换为静态CSS并在上线时使用它呢?据我了解,CSS会被服务器端和客户端缓存,因此速度不应该是一个问题,如果JS不可用,那也不是个问题,因为我的应用程序非常依赖于JavaScript,所以如果JavaScript不可用,我会有更大的问题。我不完全理解服务器端编译是如何工作的......谢谢
我曾参与一项使用 LESS 的大型项目。我们在客户端编译时遇到了主要问题:因为客户端编译需要 JavaScript,而打印操作则需要关闭 JavaScript 才能将页面渲染出来,所以无论谁打印页面,都会呈现出完全未经过样式处理的页面。即使你的应用程序像我们一样大量使用 JavaScript,如果想支持打印功能,就需要在服务器端进行编译或提供静态 CSS。
对我们最好的解决方案是,在开发环境中运行 node.js 即时编译 LESS 代码,然后在部署网站到生产环境时,预编译成一个单独的压缩 CSS 文件。
预编译还可以将客户端每个页面访问时必须加载的文件请求数量从我们的情况下(每个 LESS 文件一个请求)减少到只需一个单独的 CSS 文件,并通过避免编译步骤(客户端 less.js 必须在每次导航到新页面之前运行)来加快加载速度。
我不建议在实时生产环境中即时编译它,因为那会增加很多不必要的处理器负载。如果您预先编译它,它将不会消耗更多的服务器资源,可以视为普通的一个 CSS 文件。
浏览器只能缓存从服务器接收到的数据。这 不包括 浏览器从 less 编译的 CSS(HTML5 本地存储机制除外)。这意味着浏览器每次加载 less 文件时都必须将其编译为 CSS--即使从浏览器缓存中加载 less 文件,而不是从服务器加载。