|
133 / 118 / 34
Регистрация: 04.04.2018
Сообщений: 593
|
||||||
SetInterval and setTimeout11.02.2019, 14:36. Показов 1925. Ответов 9
Метки нет (Все метки)
Здравствуйте. Имеется такой код.
0
|
||||||
| 11.02.2019, 14:36 | |
|
Ответы с готовыми решениями:
9
setTimeout и setInterval за и против SetTimeout SetTimeout |
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 11.02.2019, 15:16 | |
|
setInterval (функция, 5000) запускает функцию через каждые 5 секунд, совершенно не обращая внимание на то, выполнено ли то, что прописано в функции, или нет -- это как каждые 5 минут звонить в скорую, не дожидаясь ответа оператора (или прерывая начавшийся разговор с оператором, потому как 5 минут прошло, и надо снова 03 набирать)... сомневаюсь, что скорую в этом случае вы вызвать сможете
аякс -- это асинхронный запрос, время ответа сервера никак вами не контролируется, здесь в любом случае надо использовать setTimeout (), запуская его только после получения ответа сервера а у вас ещё и алерты в коде... время реакции пользователя вы тоже не контролируете
0
|
|
|
133 / 118 / 34
Регистрация: 04.04.2018
Сообщений: 593
|
|
| 11.02.2019, 15:21 [ТС] | |
|
kalabuni, все верно, все так как Вы и пишите. В 25 строчке и есть setTimeout(), когда ответ приходит, тогда я снова вызываю в 91 строчке запуск таймера на 5 секунд.
Добавлено через 1 минуту Интервал времени с каждым разом увеличивается и увеличивается. Именно это мне не понятно, почему так происходит. Когда первые 1-2-3 обрабатываются в течение 5 секунд, а потом начинает время интервала увеличиваться. Даже уже на третьем запуске таймера это видно, дальше больше. Все как на скрин-шоте происходит.
0
|
|
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 11.02.2019, 15:25 | |
|
u4en1k, я не знаю псевдоязыка jquery, но предполагаю, что ответ сервера -- это где-то в success: (строка 73 вашего кода) -- вот именно там, после обработки ответа, и должен быть прописан setTimeout ()
0
|
|
|
133 / 118 / 34
Регистрация: 04.04.2018
Сообщений: 593
|
|
| 11.02.2019, 15:32 [ТС] | |
|
kalabuni, вызывается функция в 91 строчке, которая запускает снова setTimeout() в 25 строчке, после 5 секунд снова отправлять должен запрос. Вот в чем все дело, оно зацикленно и срабатывает, но вот почему время интервала с каждым разом увеличивается не понятно. Работа так же производится исключительно с цифрами в самом php обработчике.
Добавлено через 1 минуту Ответ более минуты, а от и все две после последнего ответа, а там еще более.
0
|
|
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 11.02.2019, 15:33 | |
|
увеличение интервала -- это обычно следствие одновременной работы двух и более таймеров на странице
используйте переменную myTimer при первом же запуске таймера, потом сбрасывайте её методом clearTimeout () при следующем запуске таймера я ещё не встречал задачи, при которой необходима одновременная работа двух и более таймеров -- всегда достаточно одного... и вам одного работающего хватит.
1
|
|
|
133 / 118 / 34
Регистрация: 04.04.2018
Сообщений: 593
|
||||||
| 11.02.2019, 16:08 [ТС] | ||||||
|
kalabuni, спасибо за совет. Частично с Вами соглашусь, 1 может хватить, если прописать условие и считать секунды, когда будет 5 вызывать send_contract() но почему-то у меня это не получилось реализовать. А код выглядел примерно так.
0
|
||||||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
||||||
| 11.02.2019, 17:45 | ||||||
Сообщение было отмечено u4en1k как решение
Решение
вы не поняли, поэтому ещё раз: инструкций myTimer = setTimeout () в коде может быть хоть тысяча штук
главное, чтобы единовременно работал только один таймер, вызванный последним т.е. вызовы таймеров должны быть оформлены так:
например, организовано движение рыбок в аквариуме -- с разной скоростью и в разных направлениях соответственно, для первой (медленной и плывущей направо) рыбы значение style.left изменится на 1 пиксель, а для второй рыбы (быстрой и плывущей налево) -- на -2 пикселя аналогично работают часы, показывающие время в разных городах мира: движок часов (таймер) -- он один, а часы, минуты и секунды вычисляются внутри функции для каждого циферблата
1
|
||||||
|
133 / 118 / 34
Регистрация: 04.04.2018
Сообщений: 593
|
|
| 12.02.2019, 08:15 [ТС] | |
|
kalabuni, Утро доброе, получилось. Чуть изменил код и прописал вызов метода clearTimeout () как Вы и посоветовали. Заработало корректно. Еще раз спасибо.
0
|
|
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 12.02.2019, 08:26 | |
|
u4en1k, рад за вас
1
|
|
| 12.02.2019, 08:26 | |
|
Помогаю со студенческими работами здесь
10
setTimeout SetTimeout Не выполняеться setTimeout Не срабатывает setTimeout() Проблема с SetTimeout Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|