私は自分のアプリケーションで Twitter ブートストラップ ライブラリを使用しており、素晴らしい経験をしています。現在、オートコンプリート用にブートストラップ typeahad を実装しています。ここで、サーバーへの多くのリクエストを避けるために結果をキャッシュすることに問題があります。Web で調査を行っているときに、この lib https://github.com/twitter/typeahead.jsも twitter typeahead と呼ばれていることがわかりました。boottrap http://twitter.github.io/bootstrap/javascript.html#typeaheadのものとは大きく異なるようです。私が間違っている?
最初のオプションは意図したものに最も適しているようですが、次の質問があります。
プリフェッチの使用方法 これは既存のjsonファイルである必要がありますか、それともページロード時のサーバーへの最初のリクエストである可能性がありますか?
プリフェッチとリモートを使用する実際の例はありますか?
参考までに:これは、twitter boottrap typeahead を使用した実際のコードです (twitter typeahead ではありません)。
$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>';
}
})
明確にするために。私がやろうとしているのは、結果のキャッシュを作成し、キャッシュに一致が見つからない場合はサーバーのみを使用することです。