2013-12-11 130 views
0

我正在使用typeaheadjs並使用遠程獲取數據。當我輸入'A'時,它會提取以'A'開始的數據,但下一次當我刪除並重新輸入'A'時,它會顯示來自緩存的數據。但我需要每次調用服務器而不重複使用先前的響應。typeaheadjs:如何在不使用緩存數據的情況下調用服務器

這裏是我的代碼

$('#demo').typeahead({ 
    remote: { 
     url: '/Home/GetSuggestions?query=%QUERY&url=%URL', 
     replace: function (url, query) { 
      return url.replace('%QUERY', query).replace('%URL', 'http://www.example.com'); 
     }, 
    }, 
    minLength: 1, 
    limit: 10, 
    cache: false, 
    valueKey: 'Key' 
}).bind('typeahead:selected', function (obj, datum) { 
    $.ajax({ 
     url: '/Home/UpdateTags/', 
     type: 'POST', 
     data: JSON.stringify(some_data), 
     dataType: 'json', 
     contentType: 'application/json; charset=utf-8', 
     success: function (data) { 
      $('#demo').typeahead('setQuery', ''); 
     } 
    }); 
}); 

我已得到here添加的minLength的想法。我錯過了什麼? 急切地等待幫助。

回答

0

嘗試移動遠程內部緩存布爾,應該做的伎倆

remote: { 
    url: '/Home/GetSuggestions?query=%QUERY&url=%URL', 
    replace: function (url, query) { 
     return url.replace('%QUERY', query).replace('%URL', 'http://www.example.com'); 
    }, 
    cache: false 
}, 
+0

不,它沒有工作。 – qmaruf

0

沒有尋找到的代碼庫,一個老把戲可能有助於在這裏:​​添加緩存無效。在您的replace函數中添加一個_=randomdigits,這將使url每次都是唯一的,如果緩存是按每個url完成的,則阻止緩存。

相關問題