Рекурсивный вызов функции с задержкой
Есть своя CMS, есть рассылка почты клиентам.
Ранее рассылка была реализована пачками по 50 адресов, новая пачка вызвалась за счет <meta http-equiv="Refresh Content="3; URL=./dir/"> Захотел это сделать ассинхронно. прикрутить красивый прогрессбар Важный момент, между обращения к скрипту должна быть пауза в 3 сек. Чтоб не перегружать почтовик
$("document").ready(function() {
function sendMails () {
$action = $('#action').val();
$.ajax({
type: "POST",
dataType: "json",
cache: false,
url: '?action='+$action+'&subaction=ajax',
timeout: 25000,
error: function() {
alert ('Ошибка');
},
success: function(data) {
if (data.result == 'ok' && $(data.data).size()) {
$('#sent').text(data.data.sent);
$('#remain').text(data.data.remain);
$('#percents').text(data.data.percents);
$('#errors').text(data.data.errors);
setTimeout(sendMails(),30000);
}
else if (data.result == 'finished') {
alert ('Все сделано');
}
}
});
}
sendMails();
});
Работает рекурсивно, но задержек между ответом сервера и новым обращением нет. Уже повсякому прокрутил это скрипт. В Javascript не силен. Перегуглил все подряд. Так как не полуается, уже склоняюсь к тому чтоб паузу сделать на стороне php. Но хотелось бы все-таки в javascript |
0. А зачем здесь client-side? Коль скоро почту Вы рассылаете каким-нибудь серверным скриптом, какой смысл в клиентском коде?
1. Цитата:
Цитата:
setTimeout(sendMails,3000); |
Цитата:
Влоб, сейчас решил чуть обкрасивить :) Цитата:
Спасибо. Все работает |
Не выполняет рекурсивный вызов функции
Кто знает в чем проблема?
$(document).ready(function(){ function calc(i){ alert(i); i++; calc(i); } calc(0); }); В php таким способом можно организовать рекурсивный вызов функции, а в jQuery ну ни как не работает. |
Smile, :blink:
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
function calc(i){
alert(i);
i++;
calc(i);
}
calc(0);
});
</script>
Ecть подозрение - что есть кривое использование на странице (до скрипта с вызовом рекурсии ) конструкции
$(document).ready(function(){
Рекурсивный скрипт ставьте в самый конец страницыПопробуйте убрать подобные конструкции до данного скрипта и ставить их по одному и наблюдать |
спасибо за совет
Спасибо за совет :)
Вроде разобрался. Написал вот карусель с отслеживанием события hover, over стопорит карусель, out запускает. Знаю, что такое уже давно используется во всякого рода plag-in, хотелось вот самому допереть. Кому интересно, вот что получилось: http://smile.gid-interior.ru/btimes/ |
| Часовой пояс GMT +3, время: 08:57. |