Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 03.08.2017
Сообщений: 2
1

Таймер срабатывает раньше времени или вообще не срабатывает

03.08.2017, 07:18. Просмотров 661. Ответов 3
Метки нет (Все метки)


Помогите, пожалуйста, разобраться, что нетак с таймером.

Браузер Chrome
При создании записи, создаётся заметка со следующими свойствами:

- номер заметки isbn
- статус заметки
- дата
- время

Вычесляется время в миллисекундах и передаётся таймеру setTimeout, по истечении времени изменяется статус заметки с Inprocess на Failed.

Не могу понять, почему для некоторых дат, таймер срабатывает сразу или не срабатывает вообще. Например, если срок равен 30 августа, то таймер сработает сразу, а не 30 августа, от настоящего времени. Так же он не срабатывает если задать прошедшую дату, например 1 июля, статус заметки будет в процессе, а не failed. Здесь пример кода https://repl.it/Jt3i/4
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2017, 07:18
Ответы с готовыми решениями:

Sleep срабатывает раньше времени
дана следующая задача в Buildere: при нажатии ентера на текущей форме должно пропасть 2 надписи,...

DrawString срабатывает раньше
Господа, не могу понять как так. При выполнении кода using System; using System.Windows.Forms;...

Вспышка срабатывает раньше камеры
Здравствуйте... Имеется смартфон на системе Android 5.1 Проблема следующая, при использование...

TES70358 кофемолка вообще не срабатывает
Доброго времени суток, попала кофемашина в руки кофемолка вообще не как не реагирует даже звука...

3
Эксперт JS
1530 / 1064 / 465
Регистрация: 11.07.2016
Сообщений: 2,800
03.08.2017, 09:50 2
Функция setTimeout() хранит 32х-битовое число для обозначения задержки. Таймер будет работать некорректно, если передать в качестве аргумента задержку более чем 2147483647мс.
0
the hardway first
Эксперт JS
2028 / 1512 / 769
Регистрация: 05.06.2015
Сообщений: 3,172
03.08.2017, 10:52 3
Terebonko добавлю пруфы к ответу

Немедленно срабатывает, потому что::
Browsers including Internet Explorer, Chrome, Safari, and Firefox store the delay as a 32-bit signed integer internally. This causes an integer overflow when using delays larger than 2147483647 (about 24.8 days), resulting in the timeout being executed immediately.
https://developer.mozilla.org/... setTimeout

И тащемта есть встроенные методы работы с датой / временем.
0
0 / 0 / 0
Регистрация: 03.08.2017
Сообщений: 2
03.08.2017, 12:51  [ТС] 4
Спасибо ребята, так и есть!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2017, 12:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Не срабатывает таймер
Подскажите почему в этом коде таймер срабатывает только один раз, хотя должен сработать два раза?...

Не срабатывает таймер в QT
1.Пытаюсь привязать слот к таймеру QTimer timer; QObject::connect(&timer, SIGNAL(timeout()),...

не срабатывает таймер в чем дело?
написал прогу с перемещением курсора и кликом левой кнопки мыши по нажатию на кнопку. Сначала...

Таймер срабатывает только 1 раз
Как сделать, если время таймера закончилось, и он выполнил то что ему было задано, то он...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.