Ajax异步加载数据及Redis缓存

本文介绍了一种利用Ajax进行网页分类条目动态加载的方法,通过在head.jsp文件中加载js部分实现异步加载分类条目。同时,文章详细阐述了缓存逻辑,包括查询缓存中是否有分类数据,若无则通过Hibernate查询并添加到缓存中,最后返回查询数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

针对网页分类条目的动态加载,图为页面的Head部分。

 

//categoryListServlet准备分类数据
ProductService service = new ProductService();
List<Category> categoryList = service.findAllCategoryList();
response.setContentType("text/html; charset=utf-8");
Gson gson = new Gson();
String json = gson.toJson(categoryList);
response.getWriter().write(json);

 

head.jsp异步加载js部分:

<script type="text/javascript">
          //head.jsp加载完成后,ajax异步加载分类条
          $(function(){
              
              var content= "";
              $.post(
                      "${pageContext.request.contextPath}/categoryList",
                      function(data){
                          //[{"cid":"xxx","cname":"aaa"},{"cid":"xxx","cname":"aaa"}]
                          for(var i=0;i<data.length;i++){
                              content += "<li><a href='#'>"+data[i].cname+"</a></li>";
                          }
                          //将拼接好的类别,写入到页面
                          $("#categoryUI").html(content);  
                      },
                      "json"
              );
              
          });
        
        
        </script>

 

缓存逻辑:

  1.查询缓存中有无分类数据

  2.有,直接查询缓存;

   无,则通过hibernate查询,并添加到缓存中

  3.将查询到的数据返回。

//查询缓存中有无分类数据,如果没有查询写入缓存
Jedis jedis = JedisPoolUtils.getJedis();
String categoryListJson = jedis.get("categoryListJson");
if(categoryListJson == null){
    System.out.println("缓存没有数据 查询数据库");
    ProductService service = new ProductService();
    List<Category> categoryList = service.findAllCategoryList();
    Gson gson = new Gson();
    categoryListJson = gson.toJson(categoryList);
    jedis.set("categoryListJson", categoryListJson);
}

//准备分类数据    
response.setContentType("text/html; charset=utf-8");
response.getWriter().write(categoryListJson);

 

转载于:https://www.cnblogs.com/zemul/p/10215978.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值