【发布时间】:2014-02-18 14:12:10
【问题描述】:
我使用 twitter 的 typeahead 0.10 和远程 url 从服务器检索 JSON 结果。
我想阻止客户端缓存,以便始终在 服务器。我怎样才能做到这一点?
请看下面我的代码:
// instantiate the bloodhound suggestion engine
var dataSource = new Bloodhound({
datumTokenizer: function (d) {
return Bloodhound.tokenizers.whitespace(d.value);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: "../" + autocompleteInfo.ControllerName + "/" + autocompleteInfo.MethodName + "?term=%QUERY&ts=" + (new Date().getTime()),
filter: function (res) {
var data = [];
data = $.map(res, function (item) {
return { label: item.Name, id: item.Id, autocompleteInfo: autocompleteInfo, cssClass: item.Class };
});
return data;
}
},
limit: 15,
name: 'typeaheadSourceCache',
ttl: 0,
ajax: {
cache: false
}
});
dataSource.initialize();
$("#" + autocompleteInfo.AutocompleteId).typeahead({
minLength: 3,
highlight: true,
autoselect: true
},
{
displayKey: 'label',
source: dataSource.ttAdapter(),
templates: {
suggestion: Handlebars.compile(
'<div class="searchItem {{cssClass}}">{{label}}</div>'
)
}
});
【问题讨论】:
-
知道 twitter typeahead 社区中的其他人也有同样的问题并且正在研究解决方案可能会很有趣。例如,请参阅:github.com/twitter/typeahead.js/pull/703
标签: typeahead typeahead.js twitter-typeahead