2009-11-05 80 views

回答

0

由於瀏覽器控制着緩存,因此無法真正清除緩存,但可以通過將cache: false添加到您的選項來請求下一個不緩存的請求。

$.get('/callback/', {cache: false}); 
+2

這是一次性解決方案,並通過命名參數「緩存」來誤導人們認爲它有任何特殊的語義。 – cburgmer 2012-01-09 17:06:21

+0

@cburgmer,實際上'cache'是jQuery中$ .ajax方法的一個參數,$ .get只是一個包裝器,所以這實際上是正確的答案。 「如果設置爲false,它將強制所請求的頁面不被瀏覽器緩存注意:將緩存設置爲false只能在HEAD和GET請求中正常工作,它通過在GET參數中附加」_ = {timestamp}「來工作「。 – typeoneerror 2013-08-18 20:08:50

5

如果你想繞過你可以添加一些隨機參數的URL緩存:

var url = 'http://example.com/ajax?' + (new Date()).getTime(); 
+3

你剛發明了新的車輪。恭喜 :-) – 2009-11-05 08:58:32

1
<script> 
var counter = 0; 
var counterValue = 0; 

function submitForm() 
{ 
     counter = counter + 1; 
     counterValue = counter; 
     var params = $("#DetailForm").formSerialize(); 
$("#DetailViewDiv").load("./shopmart/priceDetail.jsp?counterValue="+counter+"&"+params, 
function(){$("#PriceTagDiv").show();}); 

} 
</script> 

您添加計數器爲每個請求。 Ajax將緩存該調用,但隨着計數器每次遞增,加載jsp的參數將變得不同。