powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Постоянное создание таймера в javascript
25 сообщений из 81, страница 1 из 4
Постоянное создание таймера в javascript
    #39756319
stim644
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Подскажите пожалуйста, а правильно ли создавать постоянно таймер (каждые 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
Постоянное создание таймера в javascript
    #39756321
stim644
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня интересует не будет ли каких то утечек памяти или нагрузки на процессор чрезмерной от такого создания. Спасибо.
...
Рейтинг: 0 / 0
Постоянное создание таймера в javascript
    #39756324
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stim644,

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

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

но таки непонятно, зачем это? для реализации чатов, как делали в 2000-ых годах?
...
Рейтинг: 0 / 0
Постоянное создание таймера в javascript
    #39756475
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Постоянное создание таймера в javascript
    #39756536
Zoria
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttstim644,

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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