页面优化技术
1. 页面缓存+URL缓存+对象缓存
1.1页面缓存
例如缓存商品列表页面,先从redis缓存里面拿取页面,如果没取到再进行手动渲染
@RequestMapping(value="/to_list", produces="text/html")
@ResponseBody
public String list(HttpServletRequest request, HttpServletResponse response, Model model,MiaoshaUser user)
{
model.addAttribute("user", user);
//取缓存
String html = redisService.get(GoodsKey.getGoodsList, "", String.class); if(!StringUtils.isEmpty(html)) {
return html;
}
List goodsList = goodsService.listGoodsVo();
model.addAttribute("goodsList", goodsList);
SpringWebContext ctx = new SpringWebContext(request,response, request.getServletContext(),request.getLocale(), model.asMap(), applicationContext );
//手动渲染
html = thymeleafViewResolver.getTemplateEngine().process("goods_list", ctx); if(!StringUtils.isEmpty(html)) {
redisService.set(GoodsKey.getGoodsList, "", html);
}
return html;
}
1.2 对象缓存
比如登录的时候,判断用户是否存在,可以将返回的user进行缓存。不过这样如果用户更改密码的时候,需要对缓存进行处理,可以删掉这个对象缓存,同时修改session(这里的session是存在redis里面的,分布式session)里面的user,如果删除就会影响登录。
redisService.delete(MiaoshaUserKey.getById, "" + id); user.setPassword(toBeUpdate.getPassword()); redisService.set(MiaoshaUserKey.token, token, user);
2.页面静态化,前后端分离
静态页面被浏览器缓存下来,和服务器通信的只有接口。
3.静态资源优化
3.CDN优化