小天同学
小天同学
[less高亮插件github地址](https://github.com/danro/LESS-sublime)
@devilmanjquery 当时我也是深受其害,所以就自己把自己探索使用的过程系统详细的整理了一下。希望对大家有帮助。
此部分是#20 的一部分。
### 优化缓存方式提高缓存利用率 优化目前文件的版本管理方式,开启强缓存,提高缓存利用率,使得缓存命中率提高减少对服务器的请求。进而减少http请求。 配置ETag:http协商缓存也叫http弱缓存。If-None-Match: 上次 ETag 的内容。浏览器会发出请求询问服务端,资源是否过期;服务端发现,没有过期,直接返回一个状态码为 304、正文为空的响应,告知浏览器使用本地缓存; 如果资源有更新,服务端返回状态码 200、Etag 和正文。 添加 Expires 头:服务端通过响应头告诉浏览器,在什么时间之前(Expires)或在多长时间之内(Cache-Control: Max-age=xxx),不要再请求服务器了。这个机制我们通常称之为 HTTP 的强缓存。 一般会对 CSS、JS、图片等资源使用强缓存,而入口文件(HTML)一般使用协商缓存或不缓存。
前段时间,工作重点是现有项目的性能优化,其中就包括:前后端的分离。 之前都是后端渲染页面,提高服务端性能和前端性能就是后端服务化,前端和后端分离。 因此,当时的方案就是使用前端模板来渲染页面,然后选型的时候,研究了下字符串模板引擎。 经过对比,其实字符串模板的原理基本都是一致的,都是前端写伪HTML代码(即模板文件),然后模板引擎通过编译处理,转化成页面输出函数,最后和数据结合后渲染到对应的页面容器,实现页面的渲染工作。 但是,虽然原理差别不大,但是引擎本身的性能在渲染、编译等过程的时候还是差别挺大的。 主要的分为两种模式: 1. 运行时实时编译,然后去渲染; 2. 提前预编译,工作时直接渲染。 对于小的项目可能第一种方式更好,但是对于稍大一点的项目,牵扯到人员协作的时候,还是第二种方式更加的有优势的。但是无论哪种形式的引擎,在使用前一定要预演好流程,因为我们实际中还是遇到了很多坑的。 但是,如果有能力使用MV*模式的话,还是使用这种方式吧。毕竟字符串模板 已经不是那么优秀了。
此部分 也是在 前端性能优化#20 中的一部分。