Недавно я начал изучать Ajax и jQuery. Поэтому вчера я начал программировать простой ajax-запрос для formular, который отправляет значение списка выбора в php-скрипт и что-то считывает из базы данных.простой запрос ajax с интервалом
Это работает до сих пор! Но проблема в том, что, когда я нажимаю кнопку отправки, он запускает запрос, через 1 секунду. Я знаю, что это имеет какое-то отношение к моему интервалу. Когда я нажимаю кнопку отправки, я запускаю запрос, и каждую секунду он также запрашивает его, чтобы у меня была возможность автоматически обновлять записи о новых доходах.
Но я хотел бы иметь этот интервал цикла каждую секунду, но в первый раз, когда я нажимаю кнопку, он должен немедленно загружаться, а не через 1 секунду позже.
Вот мой код: http://jsbin.com/qitojawuva/1/edit
$(document).ready(function() {
var interval = 0;
$("#form1").submit(function() {
if (interval === 0) {
interval = setInterval(function() {
var url = "tbladen.php";
var data = $("#form1").serialize();
$.ajax({
type: "POST",
url: url,
data: data,
success: function (data) {
$("#tbladen").html(data);
}
});
}, 1000);
}
return false;
});
});
Спасибо!
Пожалуйста, ваш код здесь, так что сохраняются для будущего SO посетителей. –
Также обратите внимание, что 'setTimeout' лучше подходит для опроса Ajax, чем' setInterval', который не может правильно обрабатывать ситуации, когда запрос занимает больше времени, чем сам интервал. – D4V1D
@ D4V1D, я думаю, вы имели в виду, что 'setTimeout' лучше, чем' setInterval' при использовании ajax. Хорошая точка зрения. 'setTimeout' следует вызывать только по завершении вызова ajax. –