Ajax缓存的几种处理方式
当ajax请求的接口如果没有发生变化的情况下,那么会缓存中读取数据,
不会再向服务器请求数据,如果接口的地址发生了改变那么会再次向服务器请求数据
1. 通过URL添加后缀的方式
本来请求的地址是: /home/action? 加查询参数后缀后:/home/action?ran=Match.Random();
2. 通过Jquery的Ajax API设置相关属性(代码中标红处)
<script type="text/javascript"> var LoadTime = function () { $.ajaxSetup({ cache: false }); $.ajax({ url: '@Url.Action("currTime")', success: function (result) { $("#currTime").html(result); } }) } </script>
附带
AJAX的封装
function ajax(options){ //创建一个ajax对象 var xhr = new XMLHttpRequest() || new ActiveXObject("Microsoft,XMLHTTP"); //数据的处理 {a:1,b:2} a=1&b=2; var str = ""; for(var key in options.data){ str+="&"+key+"="+options.data[key]; } str = str.slice(1) if(options.type == "get"){ var url = options.url+"?"+str; xhr.open("get",url); xhr.send(); }else{ xhr.open("post",options.url); xhr.setRequestHeader("content-type","application/x-www-form-urlencoded"); xhr.send(str) } //监听 xhr.onreadystatechange = function(){ //当请求成功的时候 if(xhr.readyState == 4 && xhr.status == 200){ var d = xhr.responseText; //将请求的数据传递给成功回调函数 options.success&&options.success(d) }else if(xhr.status != 200){ //当失败的时候将服务器的状态传递给失败的回调函数 options.error&&options.error(xhr.status); } } }