用ajax访问数据库,第二次访问时查询的是缓存 用ajax写了一个查询重复用户名的代码,在onkeyup的调用,在查询数据库的方法里写了打印语句,只在第一次查询的时候打印了,如果第二次用同样条件查询的话就不会再执行java代码了,就是数据库的更新不能同步了,我用的是hibernate查询数据库,会不会是缓存问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在URL后面在加个随机数,试试,比如 http://你请求的url&andom=sss 你配置了二级缓存没有啊?用load查询会先检查一级缓存、二级缓存中是否存在要查询的数据,存在就不会去数据库中查询了。用get就不会去二级缓存中找。 没有配置, 用list得的数据,list方法是默认用load查询的吧,不配置二级缓存不是应该不查缓存的嘛 恩 是浏览器缓存的问题因为已经在页面上加了清空缓存的,还以为是hibernate的缓存问题原来是ajax缓存问题谢谢大家了 可能是浏览器的缓存,在你页面的head里加入<meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Refresh"> 试试 页面如果有的话应该是找得到的,但如果你执行了一次,第二次再去执行如果地址与参数是一样的,那就不会再去执行了。 req.open("GET", "/pic/setphotoid.jsp?photoid=" + photoid+"&_dc="+new Date().getTime(), "false"); //可能存在缓存问题,当photoid一样时只会发起一次请求,加时间戳 req.send(null); alert(req.responseText); //==========这里直接输出在你后面的地址加上一个&_dc="+new Date().getTime(), 时间的参数!!就可以了 这个加过了,对ajax不起作用,我现在在action的方法里加了response.setHeader("Cache-Control", "no-cache");清缓存加时间戳和随机数也是不错的解决办法~谢了~结贴了 struts2中jsp页面的值怎么往action传啊。 手机wap怎样实现下载功能 配置拦截器后获取request失败 在eclipse3.2中如何启动weblogic9.2 lib目录下引入过多的jar包影响性能吗? 子窗体 axis 里面怎么注册一个复杂类型的数组类型 java进程占用内存的问题 mysql中如何写可以设置一个INT型字段为自动增加 对于程序员来说是技术更重要还是业务更重要? 求J精通AVA热心者带我做课程设计 为程序员的您是否有下面这些性格与习惯??
因为已经在页面上加了清空缓存的,还以为是hibernate的缓存问题
原来是ajax缓存问题谢谢大家了
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Refresh">
试试
req.send(null);
alert(req.responseText); //==========这里直接输出在你后面的地址加上一个
&_dc="+new Date().getTime(), 时间的参数!!就可以了
加时间戳和随机数也是不错的解决办法~谢了~结贴了