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);
		}
	}
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM