详情页的处理:FreeMarker+nginx
我们之前做过一个大型的电商网站,这样的电商网站,商品数量都是几十万甚至几百万,对应的商品详情页会更多。如果用户每次去访问商品详情页的话,那么每次页面的数据都要从数据库去查询,这样加载速度就会很慢,访问量过大的话,就会对我们的数据库造成很大的压力,遇到高并发的场景,也会对我们的服务器造成很大的压力。
我们都知道:
静态页面内容稳定,加载速度快。
但是静态网页如果没有数据库的支持,那么在网站制作和维护方面的工作量都会很大。静态网页的交互性大,有很大的局限性。
动态网页呢,交互性好。
读取数据都要从数据库读取,每打开一个页面都需要去访问数据库,如果访问量过多的话,会对服务器造成压力,从而会影响网站的运行速度。
通过以上对比,想要提升网站的性能,让我们的网页既能有动态网页的交互性,又能有静态网站的加载速度。我们可以采用把动态页面静态化。把页面静态化的目的,就是降低http请求的个数,从而降低对数据库的操作,从而提高网站的运行速度。这样用户在访问的时候就是一个提前生成好的一个静态页面。
FreeMarker可以帮我们实现这样的需求。
下面我简单介绍一个FreeMarker。
他是基于java语言开发的模板引擎。一种将模板与数据进行整合并输出文本的通用工具。
实现原理:
- 将页面中所需要的样式写入到FreeMarker模板文件中。
- 将页面中所需要的数据进行动态绑定并放入到Map中。
- 通过FreeMarker的模板解析类process()方法完成静态页面的生成。
它有自己的一套api规范。
有自己的一些指令&#