我在我的應用程序中使用twitter引導程序庫,並且正在成爲一個很棒的體驗。現在我正在實施自動完成的引導類型。 我在這裏緩存結果的問題,以避免對服務器的許多請求。同時在網上做研究時,我發現這個lib https://github.com/twitter/typeahead.js也被稱爲twitter typeahead。這似乎與boottrap http://twitter.github.io/bootstrap/javascript.html#typeahead上的很不一樣。我錯了嗎?twitter引導式鍵入緩存json結果
的第一選擇似乎是最適合於預期,但我有以下問題:
如何使用預取?這必須是預先存在的json文件,或者可能是第一次請求頁面加載的服務器?
是否有任何使用預取和遠程的工作示例?
僅供參考:這是我與Twitter boottrap預輸入實際的代碼(不是嘰嘰喳喳預輸入)
$searchbox.typeahead(
{
minLength: 2,
source: function (query, process) {
$SearchID.val('');
persons = [];
map = {};
$.getJSON("App_Services/MyService.svc/GetData", { max: 100, criteria: query }, function (data) {
$.each(data, function (i, person) {
map[person.name] = person;
persons.push(person.name);
});
process(persons);
});
},
updater: function (item) {
selected = map[item].id;
//alert(selected)
return item;
},
matcher: function (item) {
if (item.toLowerCase().indexOf(this.query.trim().toLowerCase()) != -1) {
return true;
}
},
sorter: function (items) {
return items.sort();
},
highlighter: function (item) {
var regex = new RegExp('(' + this.query + ')', 'gi');
return '<div>' + item.replace(regex, "<strong>$1</strong>") + '</div>';
}
})
只是爲了澄清。我想要做的是創建一個緩存的結果,並只使用服務器,如果在緩存中找不到匹配。
這看起來對於基本引導程序更有用。我使用這個(https://github.com/twitter/typeahead.js),因爲它有更多的高級選項。現在它運作良好。感謝您的反饋意見。這是一個偉大的代碼片段:) – Sandcar
嗨@Sandcar如果這個或任何答案已經解決了你的問題,請考慮[接受它](http://meta.stackexchange.com/q/5234/179419)通過點擊綠色的登記表,標記。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。但是,沒有義務這樣做。 –