Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Постоянное создание таймера в javascript / 25 сообщений из 81, страница 1 из 4
06.01.2019, 13:43
    #39756319
stim644
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
Здравствуйте. Подскажите пожалуйста, а правильно ли создавать постоянно таймер (каждые 200 милисекунд). Мне нужен таймер, а не интервал именно для того, чтобы запросы шли один за другим. Т.е. отправил запрос, получил ответ, следующий.

Вот код для понимания:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
setTimeout(startVideo, 150);

function startVideo() {
      if(!video) {
        return;
      }

      $.ajax({
        type: "POST",
        dataType: "HTML",
        response:'text',
        url: "videoClient.htm",
        success: function(data) {
          if(data!='') {
            $("#target").attr("src",data);
          }

          setTimeout(startVideo, 150);
        }
      });
    }
...
Рейтинг: 0 / 0
06.01.2019, 13:45
    #39756321
stim644
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
Меня интересует не будет ли каких то утечек памяти или нагрузки на процессор чрезмерной от такого создания. Спасибо.
...
Рейтинг: 0 / 0
06.01.2019, 13:56
    #39756324
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
stim644,

это нагрузка на сервер, если его будут бомбить запросами каждые 200мс десятки клиентов.
...
Рейтинг: 0 / 0
07.01.2019, 02:44
    #39756448
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
stim644,

с интервалом задача также решается, нужно проверять значение флага, который взводится перед отправкой.

но таки непонятно, зачем это? для реализации чатов, как делали в 2000-ых годах?
...
Рейтинг: 0 / 0
07.01.2019, 12:53
    #39756475
Compositum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
stim644,

Движок JavaScript использует однопоточную модель (single-thread). Фрагменты кода (задания), подлежащие выполнению, помещаются в очередь заданий. Задания последовательно выполняются одно за другим. В каждый конкретный момент времени может выполняться только одно задание. Вызов функции setTimeout() приводит к тому, что вызов обозначенной в её первом параметре функции по истечении заданного интервала так же будет помещён в очередь заданий. Если выполнение функции занимает ощутимое время, то web-приложение "зависает", т.к. пока это задание не будет завершено, другие задания не смогут начать работу.

Возможно вам имеет смысл создать отдельный Worker и подобного рода взаимодействие с сервером выполнять в нём. Worker работает в отдельном потоке (thread), т.е. его код выполняется параллельно с теми заданиями, которые находятся в очереди заданий. Каждый раз, как на стороне кода, выполняемого в Worker происходит отправка сообщения (как правило - это происходит посредством функции postMessage()) - на стороне кода, создавшего экземпляр Worker планировщик заданий помещает в очередь заданий функцию, которую вы предварительно назначили свойству onmessage. Передаваемые данные из/в Worker содержатся в свойстве data. Для упрощения, можно выполнить декомпозицию свойства:

Код: javascript
1.
2.
3.
myWorkerInstance.onmessage = ({data}) => {
  /* здесь ваш код обработки результата, полученного с сервера */
};



Если вы никогда ранее не работали с Web Workers - это не беда. Механизм передачи данных в Worker и извлечения их обратно - один и тот же: postMessage/onmessage. Это сильно упрощает кривую обучения. Научиться вполне уверенно использовать Web Worker можно за день: например, по этой книге (обратите внимание на количество её страниц - 60). Собственно по ней я и изучал Web Workers.
...
Рейтинг: 0 / 0
07.01.2019, 18:07
    #39756536
Zoria
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
hVosttstim644,

с интервалом задача также решается, нужно проверять значение флага, который взводится перед отправкой.

но таки непонятно, зачем это? для реализации чатов, как делали в 2000-ых годах?

кстати. а как нынче модно делать чаты?
...
Рейтинг: 0 / 0
07.01.2019, 18:10
    #39756537
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
Zoriaкстати. а как нынче модно делать чаты?websocket
...
Рейтинг: 0 / 0
07.01.2019, 21:31
    #39756580
stim644
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
вадяZoriaкстати. а как нынче модно делать чаты?websocket
Тут я делаю не чат, а пересылаю видео) Каждые 200 милисекунд и я кстати обнаружил, что отправка base64 данных вместо отправки blob через websockets гораздо легче) Не знаю правильно это или нет =)

Т.е. получается создание таким образом таймера сильно грузит процессор?
...
Рейтинг: 0 / 0
07.01.2019, 21:46
    #39756586
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
stim644что отправка base64 данных вместо отправки blob через websockets гораздо легче)единственно base64 на 33,3% длиннее .....
и у тебя не ws , а ajsx....
...
Рейтинг: 0 / 0
07.01.2019, 21:46
    #39756587
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
stim644,


что значит грузит? Вам же написали про однопоточность, вот и думайте.
...
Рейтинг: 0 / 0
07.01.2019, 21:52
    #39756590
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
stim644,

и что означает "гораздо легче"?
...
Рейтинг: 0 / 0
07.01.2019, 22:02
    #39756591
stim644
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
skyANAstim644,

и что означает "гораздо легче"?

Я сравнил вес строки base64 помещенной в файл и blob (точнее саму картинку на выходе). Может это конечно не корректно)
Но факт остается фактом, как только я сменил с вебсокетов на ajax, то картинка стала шустрее показываться...
...
Рейтинг: 0 / 0
07.01.2019, 22:03
    #39756592
stim644
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
По поводу workerа спасибо, почитаю
...
Рейтинг: 0 / 0
07.01.2019, 22:04
    #39756594
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
stim644Я сравнил вес строки base64 помещенной в файл и blob (точнее саму картинку на выходе). Может это конечно не корректно)base64 меньшего объёма?
...
Рейтинг: 0 / 0
07.01.2019, 22:06
    #39756597
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
stim644,

что за сравнение мягкого с солёным?
...
Рейтинг: 0 / 0
08.01.2019, 01:51
    #39756619
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
stim644Тут я делаю не чат, а пересылаю видео

WebRTC не хотите попробовать?
...
Рейтинг: 0 / 0
08.01.2019, 13:56
    #39756735
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
hVosttstim644Тут я делаю не чат, а пересылаю видео

WebRTC не хотите попробовать?+1 аффтар, поищите готовый протокол повыше http.
...
Рейтинг: 0 / 0
08.01.2019, 18:34
    #39756836
stim644
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
вадя,

да, наверно не правильно посчитал)
...
Рейтинг: 0 / 0
08.01.2019, 18:41
    #39756837
stim644
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
hVostt,

По поводу web rtc я думал и даже реализовал первую версию. Но по некоторым причинам не устроило.
А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять?
...
Рейтинг: 0 / 0
08.01.2019, 19:01
    #39756840
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
stim644А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять?смотря для чего. если просто дергать ajax-сом сервер для выяснения появились ли данные, или просто их получать их через ws при поступлении новых данных - то разница заметная.
ws бинарные данные передавать, а ajax?
...
Рейтинг: 0 / 0
08.01.2019, 21:38
    #39756867
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
stim644hVostt,

По поводу web rtc я думал и даже реализовал первую версию. Но по некоторым причинам не устроило.
А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять?
А где у вас в треде требуемая нагрузка в попугаях?
...
Рейтинг: 0 / 0
09.01.2019, 03:27
    #39756933
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
stim644hVostt,

По поводу web rtc я думал и даже реализовал первую версию. Но по некоторым причинам не устроило.
А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять?

Технологий для потокового видео вагон: HLS, MSE-LD, MPEG-DASH, RTMP, HTTP MPEG-TS, HDS

Зачем тут вебсокет? Ну может если вы хотите видео конференцию со звонками, чатом, блекджеком и ш. Для видео-то нафига? Вы там серию джипегов, что ли, отдаёте? Ничего не понимаю.
...
Рейтинг: 0 / 0
09.01.2019, 03:28
    #39756934
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
stim644А вообще разве websocket дает меньшую нагрузку на сервер, чем ajax запросы пулять?

Если в отрыве от постановки задачи, то: зависит от...
...
Рейтинг: 0 / 0
09.01.2019, 08:57
    #39756971
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
вадяws бинарные данные передавать, а ajax?
в какая разница бинарные или текстовые?
...
Рейтинг: 0 / 0
09.01.2019, 09:28
    #39756982
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постоянное создание таймера в javascript
Изопропилвадяws бинарные данные передавать, а ajax?
в какая разница бинарные или текстовые?
в трафике - 33.3%
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Постоянное создание таймера в javascript / 25 сообщений из 81, страница 1 из 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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