|
|
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Подскажите пожалуйста, а правильно ли создавать постоянно таймер (каждые 200 милисекунд). Мне нужен таймер, а не интервал именно для того, чтобы запросы шли один за другим. Т.е. отправил запрос, получил ответ, следующий. Вот код для понимания: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2019, 13:43 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
Меня интересует не будет ли каких то утечек памяти или нагрузки на процессор чрезмерной от такого создания. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2019, 13:45 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
stim644, это нагрузка на сервер, если его будут бомбить запросами каждые 200мс десятки клиентов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2019, 13:56 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
stim644, с интервалом задача также решается, нужно проверять значение флага, который взводится перед отправкой. но таки непонятно, зачем это? для реализации чатов, как делали в 2000-ых годах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 02:44 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
stim644, Движок JavaScript использует однопоточную модель (single-thread). Фрагменты кода (задания), подлежащие выполнению, помещаются в очередь заданий. Задания последовательно выполняются одно за другим. В каждый конкретный момент времени может выполняться только одно задание. Вызов функции setTimeout() приводит к тому, что вызов обозначенной в её первом параметре функции по истечении заданного интервала так же будет помещён в очередь заданий. Если выполнение функции занимает ощутимое время, то web-приложение "зависает", т.к. пока это задание не будет завершено, другие задания не смогут начать работу. Возможно вам имеет смысл создать отдельный Worker и подобного рода взаимодействие с сервером выполнять в нём. Worker работает в отдельном потоке (thread), т.е. его код выполняется параллельно с теми заданиями, которые находятся в очереди заданий. Каждый раз, как на стороне кода, выполняемого в Worker происходит отправка сообщения (как правило - это происходит посредством функции postMessage()) - на стороне кода, создавшего экземпляр Worker планировщик заданий помещает в очередь заданий функцию, которую вы предварительно назначили свойству onmessage. Передаваемые данные из/в Worker содержатся в свойстве data. Для упрощения, можно выполнить декомпозицию свойства: Код: javascript 1. 2. 3. Если вы никогда ранее не работали с Web Workers - это не беда. Механизм передачи данных в Worker и извлечения их обратно - один и тот же: postMessage/onmessage. Это сильно упрощает кривую обучения. Научиться вполне уверенно использовать Web Worker можно за день: например, по этой книге (обратите внимание на количество её страниц - 60). Собственно по ней я и изучал Web Workers. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 12:53 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
hVosttstim644, с интервалом задача также решается, нужно проверять значение флага, который взводится перед отправкой. но таки непонятно, зачем это? для реализации чатов, как делали в 2000-ых годах? кстати. а как нынче модно делать чаты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 18:07 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
Zoriaкстати. а как нынче модно делать чаты?websocket ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 18:10 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
вадяZoriaкстати. а как нынче модно делать чаты?websocket Тут я делаю не чат, а пересылаю видео) Каждые 200 милисекунд и я кстати обнаружил, что отправка base64 данных вместо отправки blob через websockets гораздо легче) Не знаю правильно это или нет =) Т.е. получается создание таким образом таймера сильно грузит процессор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 21:31 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
stim644что отправка base64 данных вместо отправки blob через websockets гораздо легче)единственно base64 на 33,3% длиннее ..... и у тебя не ws , а ajsx.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 21:46 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
stim644, что значит грузит? Вам же написали про однопоточность, вот и думайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 21:46 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
stim644, и что означает "гораздо легче"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 21:52 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
skyANAstim644, и что означает "гораздо легче"? Я сравнил вес строки base64 помещенной в файл и blob (точнее саму картинку на выходе). Может это конечно не корректно) Но факт остается фактом, как только я сменил с вебсокетов на ajax, то картинка стала шустрее показываться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 22:02 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
По поводу workerа спасибо, почитаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 22:03 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
stim644Я сравнил вес строки base64 помещенной в файл и blob (точнее саму картинку на выходе). Может это конечно не корректно)base64 меньшего объёма? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 22:04 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
stim644, что за сравнение мягкого с солёным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 22:06 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
stim644Тут я делаю не чат, а пересылаю видео WebRTC не хотите попробовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2019, 01:51 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
hVosttstim644Тут я делаю не чат, а пересылаю видео WebRTC не хотите попробовать?+1 аффтар, поищите готовый протокол повыше http. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2019, 13:56 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
вадя, да, наверно не правильно посчитал) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2019, 18:34 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
hVostt, По поводу web rtc я думал и даже реализовал первую версию. Но по некоторым причинам не устроило. А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2019, 18:41 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
stim644А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять?смотря для чего. если просто дергать ajax-сом сервер для выяснения появились ли данные, или просто их получать их через ws при поступлении новых данных - то разница заметная. ws бинарные данные передавать, а ajax? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2019, 19:01 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
stim644hVostt, По поводу web rtc я думал и даже реализовал первую версию. Но по некоторым причинам не устроило. А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять? А где у вас в треде требуемая нагрузка в попугаях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2019, 21:38 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
stim644hVostt, По поводу web rtc я думал и даже реализовал первую версию. Но по некоторым причинам не устроило. А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять? Технологий для потокового видео вагон: HLS, MSE-LD, MPEG-DASH, RTMP, HTTP MPEG-TS, HDS Зачем тут вебсокет? Ну может если вы хотите видео конференцию со звонками, чатом, блекджеком и ш. Для видео-то нафига? Вы там серию джипегов, что ли, отдаёте? Ничего не понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 03:27 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
stim644А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять? Если в отрыве от постановки задачи, то: зависит от... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 03:28 |
|
||
|
Постоянное создание таймера в javascript
|
|||
|---|---|---|---|
|
#18+
вадяws бинарные данные передавать, а ajax? в какая разница бинарные или текстовые? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 08:57 |
|
||
|
|

start [/forum/topic.php?fid=22&tid=1443900]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
89ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 415ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...