2011-09-13 150 views
1

我在我的網站上有一個自動完成框。我正在使用Tokeninput。當沒有結果時,我有用戶點擊鏈接添加它。問題是,如果他們已經輸入了已經被緩存的確切查詢,那麼他們必須刷新頁面才能看到下拉菜單中的結果。無論如何,以防止緩存某些Ajax調用?有沒有辦法阻止某些URL的緩存?

回答

3

jQuery.ajax中的cache選項設置爲false。這將阻止AJAX調用的緩存。它的工作方式是添加一個名爲_的新查詢字符串參數,該參數被設置爲當前時間戳。

2

在請求的URL的末尾添加一個唯一的查詢參數。通常這是通過隨機數或時間戳來完成的。我更喜歡時間戳。

function makeURLUnique(url) { 
    var parm = "unique=" + Date.now(); // get timestamp in milliseconds 
    if (url.indexOf("?") == -1) { 
     parm = "?" + parm;    // no question mark, add one 
    } else if (!url.match(/\?$/)) { 
     parm = "&" + parm;    // no question mark at the end, must be other parms 
    } 
    return(url + parm); 
} 

如果您正在使用jQuery來獲取URL,就可以自動使用jQuery的選項來打開緩存關閉,會做到底是什麼如上所述,但是你做它:

$.ajax(yourURL, {cache: false}).then(...); 
相關問題