次のコード スニペットを使用して、フォースクエア会場に先行入力を提供するために、javascript を介して Twitter ブートストラップの先行入力を使用しています。
function addLocationTypeaheadHandler() {
$('input#location').keyup(function() {callFoursquareForTypeahead()});
}
function callFoursquareForTypeahead() {
var inputQuery = $('input#location').val();
if (inputQuery.length == 3) {
$('input#location').typeahead({
source: function(query, process) {
var urlString = "https://api.foursquare.com/v2/venues/suggestcompletion?ll=" + $('#latitude-field').val() + "," + $('#longitude-field').val() +
"&radius=1000&client_id=" + clientid + "&client_secret=" + clientsec;
return $.get(urlString, {query: $('input#location').val()},
function(json) {
venueNames = [];
$.each(json.response.minivenues, function(index,value) {
venueNames.push(value.name);
});
return process(venueNames);
}
);
}
});
}
}
現在は機能していますが、クエリを変更するたびに表示されるネットワーク リクエストには、foursquare への新しい XHR リクエストがあります。inputQueryの長さ条件付きの(それほどエレガントではない)keyupイベントを使用してそれらを最小化しようとしましたが、まだ呼び出されています。
これらのリクエストを最小限に抑える方法があるかどうか知りたい