1. 程式人生 > >Ajax異步加載數據及Redis緩存

Ajax異步加載數據及Redis緩存

set 邏輯 html on() getwriter charset util data 查詢

技術分享圖片

針對網頁分類條目的動態加載,圖為頁面的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);

Ajax異步加載數據及Redis緩存