页面优化技术

2018-05-09  本文已影响0人  totohui

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优化

上一篇下一篇

猜你喜欢

热点阅读