Tôi sử dụng twitter bootstrap typeahead để hiển thị một số dữ liệu từ máy chủ, vấn đề là khi người dùng gõ một chữ typeahead thực hiện một cuộc gọi ajax đến máy chủ và khi tôi cố gắng gõ 2 hoặc 3 chữ cái nhanh nó sẽ làm cho 2 hoặc 3 ajax gọi đến máy chủ, là có một khả năng để làm cho một sự chậm trễ khi người dùng là đánh máy chữ để làm cho chỉ có một cuộc gọi ajax đến máy chủTwitter bootstrap typeahead delay
mã của tôi vào lúc này:
$('#SEARCH-INPUT').typeahead({
source: function (query, process) {
jQuery.ajax({
type: "GET",
url: "/organisations/search",
data: {search_name: $("#SEARCH-INPUT").val()},
beforeSend: function(){
$("#SEARCH-LOADING").show();
},
success: function (data) {
organisations = [];
organisations_hash = {};
$.each(data, function(i, item){
organisations_hash[item.name.toUpperCase()] = item.id;
organisations.push(item.name);
});
organisations.sort();
$("#SEARCH-LOADING").addClass("hidden");
process(organisations);
},
error: function(){ alert("error");},
async: false
});
}
,updater: function (item) {
$("#SEARCH-INPUT").val(item);
$("#SEARCH-BUTTON").click();
return item;
}
,items: 9
,minLength: 1
});
Cảm ơn bạn, hoạt động hoàn hảo – Maki
Nó có một lỗ hổng - nếu bạn có một tập MinLength, sau đó khi bạn nhanh chóng lùi lại thông qua văn bản đã nhập và xóa đầu vào, thì thời gian chờ sẽ kết thúc. Tôi hy vọng nó sẽ không ... xem ví dụ này: http://jsfiddle.net/nnPVn/16/ –
Câu hỏi trên không có vấn đề này gây ra minLength là 1 (mặc định). – MrBoolean