Ajax異步加載數據及Redis緩存
阿新 • • 發佈:2019-01-03
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緩存