如何改造动态系统 ?

若何把动态页面改革成合适缓存的静态页面呢?就是经由过程前面说起的去除影响身分的办法,即经由过程动静分别把这些身分自力出来。下面以详情体系(Detail)为例介绍若何做动静分别。

UrL独一一化。详情体系自然地就可以做到URL同一化,如每个商品都用ID标识,那么h:/:itm.toa com/itm.htm?d-=xxx就可以作为独一-的 URL标识。

分别阅读者相干的身分。阅读者相干的身分包含是否登录以及登录身份等信息,我们可以把它们零丁拆分出来,经由过程动态要求来获取。分别时光身分。经由过程动态要求获取办事端输出的时光。

异步化地区身分。以异步方法获取详情体系上与地区相干的信息。

去失落Cookie。可以经由过程代码软件删除办事端输出页面中包括的Cookie,如可以经由过程unset req.http.cookie敕令去失落Varnish中的Cookie.

分别出动态内容今后,若何组织这些内容也长短常症结的,因为页面中其他模块会用到这些动态内容(好比断定该用户是否登录等)。经由过程把这些信息JSON化,前端可以很便利地获取它们。

知道了分别哪些内容,又知道怎么组织它们,如今的问题就是若何获取它们并把它们和静态文件组装在一路。我们可以经由过程两种方法获取动态内容: ESI (Edge Side Includes)和CSI ( Client Side Includes )。

ESI。即在Web署理办事器上做动态内容要求,并将要求插人静态页面中,当用户拿到页面时已经是一个完全的页面。如如今的详情体系就是采取这种方法。这种方法对办事端机能有些影响,然则用户体验较好。

CSI。即提议一个异步JS要求,零丁向网站制造办事端获取动态内容。这种方法下的办事端机能更佳,然则用户端页面略有延时,体验稍差。

相關文章: