powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / вопрос по jscript (ghfplyjt k.,jgsncdj)
3 сообщений из 3, страница 1 из 1
вопрос по jscript (ghfplyjt k.,jgsncdj)
    #37173363
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
function FormaTime()
{
  var s="";
  d = new Date();

  s += d.getHours()+":";
  s += d.getMinutes()+":";
  s += d.getSeconds()+",";
  s += d.getMilliseconds();
  return(s);
}


WScript.echo(FormaTime());
WScript.Sleep( 1000 );
WScript.echo(FormaTime());
WScript.Sleep( 1000 );
WScript.echo(FormaTime());
WScript.Sleep( 1000 );
WScript.echo(FormaTime());
WScript.Sleep( 1000 );
WScript.echo(FormaTime());
WScript.Sleep( 1000 );


почему если sleep =1000
то результат выполнения такой, что верно:

12:54:15,927
12:54:16,927
12:54:17,927
12:54:18,927
12:54:19,927

а если скажем слип =1111 то интервал уже не 1111 а больше?

12:55:14,802
12:55:15,927
12:55:17,52
12:55:18,177
12:55:19,302
...
Рейтинг: 0 / 0
вопрос по jscript (ghfplyjt k.,jgsncdj)
    #37173388
Константин Цветков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
макс факторпочему Windows не является средой для выполнения задач в реальном времени (исключения есть).
...
Рейтинг: 0 / 0
вопрос по jscript (ghfplyjt k.,jgsncdj)
    #37173398
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЦветковWindows не является средой для выполнения задач в реальном времени (исключения есть).
И это лишь "одна пятая" часть беды. Если бы программа была на с++ например, то такие интервалы выдерживались бы достаточно точно. А речь то об однопоточной js-машине в составе браузера, которая никогда никому не давала обязательств выдерживания таймаутов с точностью до 1 мс. Более того, если во время ожидания вдруг на экран выскочит сообщение, какой-нибудь alert, то событие может не произойти до тех пор, пока алерт не закроют.

макс фактор ,
Но никаких проблем от этого обычно нет, если правильно логику строить. Точные интервалы в js обычно не нужны, т.е. обновлять или проверять что-то достаточно с примерным интервалом - никто не помрет. Не исключаю необходимость в точности в редких случаях, так что проясни задачу.

Если же задача типа "5 раз в секунду проверять состояние, если ничего не изменилось, то через 50 секунд выдать ошибку" и ты решил, что значит надо 250 раз поставить таймаут на 200 мс - будешь не прав. Сумма действительно может существенно уйти от 50 секунд. Надо делать так:
- засекаем время начала операции;
- делаем таймаут на 200 мс;
- не важно через сколько он сработал, но сработал; и если текущее время отличается от времени начала более чем на 50 сек - значит все, сообщаем об ошибке; иначе перерисовываем чего надо (например сообщение "Операция выполняется 00 мин 16 сек") и ставим еще один таймаут на 200 мс.

Никаких неудобств или проблем от неточности при этом.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / вопрос по jscript (ghfplyjt k.,jgsncdj)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]