ajax get 请求不刷新

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('请求出错!');
  		}
	});
}

相关推荐