Помогите, где может быть ошибка?
Вложений: 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, время: 09:09. |