2011-07-21 28 views
0

我遇到以下問題。我曾經有一個自動完成的輸入,我剛剛從現場刪除這個(因爲它不再是necassery)。從緩存結果中刪除自動完成

現在是:<input type="text" class="required text motivationname valid" maxlength="30" onblur="isDoubleMotivation(this.value);" value="" id="title" name="title">沒什麼特別的權利?

我有另一個自動完成字段,充滿了有關城市的信息。

var elements = $('input.auto_plaatsnaam'); 
    elements.each(function() { 
     $(this).autocomplete({ 
      dataType: "json", 
      source: "/common/ajax/citysearch.php", 
      minLength: 1, 
      cache: false, 
      delay: 100 
     }); 
    }); 

問題如下:某些用戶在第一個(標題)輸入字段中獲得自動完成。我認爲這是一個緩存問題,因爲刪除緩存解決了問題。我可以強制使用php或js在加載字段之前刷新緩存嗎?刪除所有的緩存對網站並不有益,所以我希望我可以刪除這些字段的緩存。

回答

1

看來較新版本的jQuery用戶界面的更新已經解決了這個問題。謝謝大家!

0

一個強大的解決方案是爲查詢url添加一個參數,其中包含時間戳。

例(沒有實際測試過):

var elements = $('input.auto_plaatsnaam'); 
elements.each(function() { 
    $(this).autocomplete({ 
     dataType: "json", 
     source: function() { return "/common/ajax/citysearch.php?t="+new Date().getTime()}, 
     minLength: 1, 
     cache: false, 
     delay: 100 
    }); 
}); 

這種方式,對於AJAX調用的URL永遠是不同的,所以沒有緩存由瀏覽器發出。

+0

這我知道,更多的是我不明白爲什麼其他領域得到自動完成,爲什麼這顯然是禁用的,結果的緩存是好的,而不是問題。 – Tim

0

假設你保持你的js文件「myjs.js」你可以修改相應的腳本標籤來此

<script src="/path/to/myjs.js?version=0.01"></script>