jsp前台在利用Ajax向后台发起请求,如何判断后台数据库里的数据是不是发生过更新?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp前台在利用Ajax向后台发起请求,如何判断后台数据库里的数据是不是发生过更新?相关的知识,希望对你有一定的参考价值。
RT,我有一个需求,就是在前台里动态显示从后台数据库里提取出的前n条最新数据做展示,思路是利用Ajax定时向后台发起获取数据的请求,如果在上一次查询的基础上有新的数据则获取最新的数据前n条(这里分两种情况,一个是n条内包含了一部分上次查询到的数据;另一个是这n条不包含上一次查询到的数据,请大神们分别针对这两种情况做解答),如果在上一次查询的基础上没有新数据则不做任何操作。现在关键点是怎么在对系统性能开销较低的情况下判断数据库里的数据是否发生过更新从而执行后续操作?有一个假设背景是该功能的使用并发用户数量在万级别之上,求大神给出一个详细的思路或者是代码实现都行,我把我所有的分数都贡献出来了,求大神们不吝赐教~
参考技术A加cookie处理,思路很简单。方式有很多,我先随便写一种,觉得不合适给我留言。
首先对DB里面数据的数据加一个自增的列。记住自增的列。
cookie里面缓存已经读取的数据num值,每次ajax请求的时候自加一下,在放到cookie里面,类似分页原理
如果当前num大于等于数据库这个序列的最大值,可以判断数据库没有更新的数据
基本就这样,很简单,有问题,随时M。
本回答被提问者和网友采纳请求一个方法,后台能正常执行,前台报错404
************请求一个方法,后台能正常执行,前台报错404************
前言:我是通过ajax请求,虽然后台能正常执行,
但是ajax却不能执行success方法,执行了error方法。
前台报错404,说找不到XX.jsp页面。
后台方法是一个没有返回值的方法。
分析:找不到页面,说明是去寻找视图解析器了。那么我们这个不需要返回,怎么办呢。
分析后发现,后台的方法要么是请求modelAndView,要么返回的是json。
所以我们这个方法虽然没有返回,但是还是要在方法上写@ResponseBody,这样也至少是有响应的。
ajax才能知道是正确的。
这是网上的一句话:
所以不能忽略了注解@ResponseBody的作用,这个注解的作用是将函数返回值作为请求返回值
。没有这个注解的话,请求的响应应该是一个页面,不需要页面的话应该加上这个注解。
/**删除 * @param out * @throws Exception */ @ActionDesc(description="app版本管理删除",methodType="post") @RequestMapping(value="/delete") @ResponseBody public void delete(String id,String appUrl) throws Exception{ //先删除文件 File oldFile = new File(appUrl); if (oldFile.exists() && oldFile.isFile()) {//文件存在且是个文件 oldFile.delete(); //再删除目录 int lastIndexOf = appUrl.lastIndexOf("/"); appUrl = appUrl.substring(0,lastIndexOf); File fileDir = new File(appUrl); if(fileDir.isDirectory()){//这是一个目录 fileDir.delete();//删除目录 } } //最后删除数据 appVersionService.delete(id); }
以上是关于jsp前台在利用Ajax向后台发起请求,如何判断后台数据库里的数据是不是发生过更新?的主要内容,如果未能解决你的问题,请参考以下文章
ajax上传文件后,后台java如何接收(求后台接收的完整代码)
asp.net利用Ajax和Jquery在前台向后台传参数并返回值
ajax请求后台代码,如何实现后台抛出异常在前台捕获异常:如后台抛出throw exception("该帖子已被删除")