Рекурсивный вызов функции с задержкой
Есть своя 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, время: 13:14. |