Ajax异步加载数据及Redis缓存

针对网页分类条目的动态加载,图为页面的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

时间: 2024-10-11 00:36:43

Ajax异步加载数据及Redis缓存的相关文章

淘宝购物车页面 智能搜索框Ajax异步加载数据

如果有朋友对本篇文章的一些知识点不了解的话,可以先阅读此篇文章.在这篇文章中,我大概介绍了一下构建淘宝购物车页面需要的基础知识. 这篇文章主要探讨的是智能搜索框Ajax异步加载数据.jQuery的社区非常的活跃,许多朋友都在不同地方分享了很多优秀的插件.我在相关的网站上找过想实现类似功能的插件,但是没有找到.于是乎,自己动手丰衣足食.自己来搭建智能搜索框下拉列表.当然,如果有类似功能并且常维护Bug的插件,望留言交流. 源码地址: 淘宝购物车页面--PC端和移动端项目实战 首先需要先给大家打一根

使用ajax异步加载数据

使用ajax异步加载数据 controller为User赋值 @RequestMapping("/a2") public List<User> a2() { List<User> userlist = new ArrayList<User>(); userlist.add(new User("大头儿子", 6, "男")); userlist.add(new User("小头爸爸", 30,

【JAVAWEB学习笔记】网上商城实战2:异步加载分类、Redis缓存分类和显示商品

网上商城实战2 今日任务 完成分类模块的功能 完成商品模块的功能 1.1      分类模块的功能: 1.1.1    查询分类的功能: 1.1.2    查询分类的代码实现: 1.1.2.1  创建表: CREATE TABLE `category` ( `cid` varchar(32) NOT NULL, `cname` varchar(20) DEFAULT NULL, PRIMARY KEY (`cid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 1

ajax异步加载问题

使用ajax异步加载数据,在之后需要用到这个数据时,应该将之后的js一并写入ajax函数中,否则后面的js不能找到动态拼接的dom节点. 或者将其封装成方法,在ajax动态加载数据的最后调用该方法.

向上滚动或者向下滚动分页异步加载数据(Ajax + lazyload)

/**** desc : 分页异步获取列表数据,页面向上滚动时候加载前面页码,向下滚动时加载后面页码 ajaxdata_url ajax异步的URL 如data.php page_val_name ajax异步的URL中的页码参数名 如pageno page_no 初始加载页码,默认1 [如2,则与前面两参数结合为data.php?pageno=2] is_lazyload 是否开启懒加载 page_count 总页数 empty_msg 没有数据的时候提示(可传输图片) ending_msg

iScroll.js 向上滑动异步加载数据回弹问题

iScroll是一款用于移动设备web开发的一款插件.像缩放.下拉刷新.滑动切换等移动应用上常见的一些效果都可以轻松实现. 现在最新版本是5.X,官网这里:http://iscrolljs.com/ 下面是按照官网给的Demo,写的一个异步加载数据实例: 1 <title>iScroll demo: click</title> 2 <script src="~/Scripts/iscroll5/jquery-1.10.2.js"></scrip

Android利用Volley异步加载数据完整详细示例(二)

MainActivity如下: package cc.y; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.os.Bundle; import android.util.LruCache; import android.widget.ImageView;

Android-搭建简单服务端+ListView异步加载数据

Android-搭建简单服务端+ListView异步加载数据 2014年5月6日 本篇博文带给大家的是教大家如何在MyEclipse中搭建一个服务端,并通过手机端与其通信,异步加载数据. 笔者使用的是MyEclipse,各位也可以直接用Eclipse创建Java Web项目,谷歌提供的ADT Bundle是不能创建Web项目,读者可以下载Eclipse For JaveEE Developer这个IDE. 下面来介绍如何在MyEclipse创建一个Web项目,并部署到Tomcat当中,关于Tom

SpringMVC+Jquery -页面异步加载数据

背景: 做项目时涉及到页面,当我打算在controller中传一个list到页面,然后通过<c:foreach>循环遍历出来时,同事说:你这样每次都要刷新,这都是几百年前使用的技术了.你用post实现异步加载数据.然后就...... ResultUtil.java 工具类: package com.sgcc.uds.fs.config.web.util; import java.util.HashMap; import java.util.Map; import net.sf.json.JSO