zrobiłem sobie właśnie filtr do logów. Za każdym razem jak użytkownik wpisze w pole input jakiś znak, ten przeszuka baze i wydrukuje mu przefiltrowane dane. Zapytania do bazy idą asynchronicznie, korzystam tutaj z JQuery. Problem polega na tym, że skrypt reaguje na event keyup, co powoduje że w krótkim czasie może być wysłana spora ilość żądań przez co czasami się zdarza że po wysłaniu dwóch żądań to pierwsze wykona się po 2, rezultatem tego są nieaktualne dane wydrukowane na ekranie. Jak sobie z tym poradzić?
Mój kod
var input = $("#logExt-form :input"); input.keyup(function(e){ var data = {}; input.each(function(){ // pól input jest 6 data[this.name] = $(this).val(); }); dataJSON = JSON.stringify(data); console.log(data); $.ajax({ url : "/admin/modules/CmsModulesAdminLogsExtensionBundle", cache : false, data : { "data" : dataJSON}, success : function(data){ $("#ajax-content").html(data); } }); });