|
|
|
вопрос по jscript (ghfplyjt k.,jgsncdj)
|
|||
|---|---|---|---|
|
#18+
Код: 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. почему если 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2011, 11:02 |
|
||
|
вопрос по jscript (ghfplyjt k.,jgsncdj)
|
|||
|---|---|---|---|
|
#18+
макс факторпочему Windows не является средой для выполнения задач в реальном времени (исключения есть). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2011, 11:35 |
|
||
|
вопрос по jscript (ghfplyjt k.,jgsncdj)
|
|||
|---|---|---|---|
|
#18+
Константин ЦветковWindows не является средой для выполнения задач в реальном времени (исключения есть). И это лишь "одна пятая" часть беды. Если бы программа была на с++ например, то такие интервалы выдерживались бы достаточно точно. А речь то об однопоточной js-машине в составе браузера, которая никогда никому не давала обязательств выдерживания таймаутов с точностью до 1 мс. Более того, если во время ожидания вдруг на экран выскочит сообщение, какой-нибудь alert, то событие может не произойти до тех пор, пока алерт не закроют. макс фактор , Но никаких проблем от этого обычно нет, если правильно логику строить. Точные интервалы в js обычно не нужны, т.е. обновлять или проверять что-то достаточно с примерным интервалом - никто не помрет. Не исключаю необходимость в точности в редких случаях, так что проясни задачу. Если же задача типа "5 раз в секунду проверять состояние, если ничего не изменилось, то через 50 секунд выдать ошибку" и ты решил, что значит надо 250 раз поставить таймаут на 200 мс - будешь не прав. Сумма действительно может существенно уйти от 50 секунд. Надо делать так: - засекаем время начала операции; - делаем таймаут на 200 мс; - не важно через сколько он сработал, но сработал; и если текущее время отличается от времени начала более чем на 50 сек - значит все, сообщаем об ошибке; иначе перерисовываем чего надо (например сообщение "Операция выполняется 00 мин 16 сек") и ставим еще один таймаут на 200 мс. Никаких неудобств или проблем от неточности при этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2011, 11:48 |
|
||
|
|

start [/forum/topic.php?fid=26&fpage=165&tid=1498483]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 391ms |

| 0 / 0 |
