Помогите, где может быть ошибка?
Вложений: 1
Есть веб интерфейс программы, обновление данных происходит по AJAX. Это интерфейс телефонного оператора, он там смотрит историю звонков и сохраняет номера. Скажу что за некоторые методы, которые я использовал в коде, стыдно, но я не гуру JS и раньше моих знаний хватало, а тут нагрузка по больше и полезли ошибки. В частности, переполнение стека (Uncaught RangeError: Maximum call stack size exceeded пишет Chrome), но я даже не понимаю как отследить эту ошибку, браузер очень скудно выдает информации (любой), пришел к мысли, что дело в логике, все переписывать на данный момент нет времени, сроки горят, а система уже запущена.
Код прикрепляю: |
Похоже трабл кроется вот в этой функции
function sendauto(){ var locked=document.getElementsByName('locked')[0].value; if (locked!='yes'){ // блокировка автомата , чтобы не ускорялся document.getElementsByName('locked')[0].value='yes'; var iquery=parseInt(document.getElementsByName('iquery')[0].value); if (iquery>44000){ location.reload(); return false;} // обновление страницы раз в 4 часа, на всяк случай setTimeout (function(){start()},100); }else sendauto();//setTimeout (function(){sendauto();},1000); } В частности в локальном режиме она рекурсивно себя вызывает до бесконечности Второе Рекурсивный вызов таймера в ней же функции старт - , А что одной инициализации start() на всё - про всё не хватает ? Собственно - эт быстро мысли - на счёт куда рыть.. |
Цитата:
Цитата:
|
keysi_,
Почему не делать это в одной функции ?? Если завсегда одна - Вызывает другую ? У метода Aякс загрузки должен быть саllback - завершения(удачного/неудачного, но конца) - из него и запускать следующее деяние, если данных нет, запускаем через проверочный интервал (думаю порядка 1/10 между временем обновления данных |
Цитата:
|
Цитата:
А в саllback - проверяете результат - и запускаете - Таймер повторного запроса или же обработку результата и ток потом таймер |
Часовой пояс GMT +3, время: 21:35. |