⑴ 有關jquery中ajax的緩存問題,怎麼解決
jquery中ajax的緩存問題需要增加參數cache:
$.ajax({
type: "GET",
cache: true,
url: 'aa.php',
dataType: "html",
cache: true,
success: function (res) {
$('.page-loading').remove();
$('.page-content .page-content-body').html(res);
});
這樣類似以下請求就可以緩存了:
aa.com/aa.php
aa.com/aa.css
aa.com/aa.js?_=1373600904652
⑵ 在jquery ajax裡面cache怎麼用
使用方法:jQuery.ajax( options )
其中options有很參數,是以key/value形式出現的。
在使用過程中,遇到過一個問題,就是回調方法不執行,後來查了一下,是緩存的問題。
cache Default: true,
Added in jQuery 1.2, if set to false it will force the pages that you request to not be cached by the browser.
所以如果不想使用緩存,只要cache:false就可以了。
如:
$.ajax({ type: "POST", url: "some.php",
cache:false, success: function(msg){ alert( "Data Saved: " + msg ); } })
⑶ 如何禁用jquery ajax緩存
我們先看看這個問題是怎麼引起來的:
如果沒有進行額外設置的話,如果請求的地址和參數及參數的值完全一樣,就會發生jquery ajax使用緩存的情況。
jquery ajax使用緩存的解決方案:
1.在請求的url後面加上一個隨機參數(***.do?random=Math.random)這不失為一個好方法,缺點就是在所有的jquery ajax請求的地方都要加上這個隨機參數,新項目還行,老項目的花,這是個巨大的工作量。
2.給jquery ajax請求設置禁用緩存的全局設置
我們都知道在jquery ajax的的方法中有個cache參數,如果設置為false,那麼就不進行緩存。這么怎麼設置全局的jquery ajax cache參數呢?
答案就是ajaxSetup() 方法,該方法可以為所有的ajax請求統一設置默認參數。那麼可以設置如下代碼:
$(function(){
$.ajaxSetup ({
cache: false //關閉AJAX緩存
});
});
最後如果沒有common.js文件(所有頁面都調用的JS文件),那麼把這段代碼放到jquery庫文件裡面吧。
解答完畢!