Я хочу отправить нажатия клавиш, набранные в текстовом поле, но только с интервалом в 1 с.
это позволяет уменьшить нагрузку на отправку ajax-запроса при каждом нажатии клавиши.
так, например. если пользователь наберет 4 буквы в течение секунды, запрос отправит все эти 4 буквы. и скажем, что он печатает без остановки в течение 1 минуты, затем скрипт будет отправлять с интервалом 1 с, пока он не прекратит печатать.
на данный момент мой сценарий выглядит так:
$("#type_post").live('keyup', function() {
$.post('posts.php', {post: $("#type_post").val()});
});
но это посылает на все нажатия клавиш.
Может ли кто-нибудь помочь мне здесь
ОБНОВЛЕНИЕ: вот код, который я использовал.
var last_post = '';
$('#type_post').focus(function() {
// check if text has been changed every second when input field is focused
setInterval(function() {
if($('#type_post').val() != last_post)
{
// if changed, post it and set the new text as last text
$.post('posts.php', {post: $("#type_post").val()});
last_post = $("#type_post").val();
}
}, 1000);
});