ajax对于web应用来说是一个非常好的技术,然后大家有没有碰到过当用ajax的get方法去请求的时候明明数据库中的数据变了,但是前端页面的数据不会改变呢?我用jquery+Spring mvc为例,
如前端ajax:
function initAny() { jq.ajax({ type : "get", url : "add/selectUser.do?", async: false, dataType : "json", success :function (data) { alert('请求成功!'); }, error :function (data) { alert('请求出错!'); } }); }
后端java:
@RequestMapping(value = "/selectUser.do", method = RequestMethod.GET)
public void selectUser(HttpServletRequest request,HttpServletResponse response) throws Exception {
User user = new User();
..........
}
当我们当一次打开的时候能够请求的到数据,但是在再一次请求时会发现没有变化,其原因是因为ajax的get方法会有缓存,这样的问题我们可以这样解决:就是在请求的URL后面加上一个随机数。
js代码可以修改如下。这样就不会出现缓存问题。
function initAny() { var random = Math.random()*10;//随机数 jq.ajax({ type : "get", url : "add/selectUser.do?"+random , async: false, dataType : "json", success :function (data) { alert('请求成功!'); }, error :function (data) { alert('请求出错!'); } }); }