X
Меню сайта
GreenB
Войдите с помощью одной из соцсетей
Или с помощью нашего сайта
Зарегистрироваться Войти
Обратная связь

Обратная связь

Длинные опросы jquery

Длинные опросы jquery

Что такое технология длинных опросов

Вернее - это не длинные опросы, а частые. Т.е. через определенное время приложение как бы спрашивает сервер.
- Есть что новое?

И в ответ получает, либо пустоту (нет изменений) либо что-то, что оппонент (в данном случае будем рассматривать именно реализацию личных сообщений) вам что-то написал.
Плюсы данного метода, его реализация. Несколько строк кода на jquery.
Одним из главных минусов - это постоянные запросы, даже если изменений на сервере нет.
И если таких запросов будет много... или очень много... В общем сами понимаете.
Тем не менее - это неплохой способ для не сильно загруженного приложения.

 
 let timer = 0;

(function survey(){
	 
	 let speed = '1000'; // Изначальная скорость обновления
	 
	 if( timer > 10 )  speed  = '5000'; // скорость когда таймер достигнет отметки 10
	  
	  else if( timer > 50)  speed  = '10000';
     
 let timeout =  setTimeout(function(){
    
	 $('.timer').html(timer++); // Увеличиваем таймер на 1 и показываем в блоке (если необходимо) есди нет необходимости в визуализации то просто timer ++
	
	// Здесь должен располагаться скрипт который будет выполняться. Например ajax запрос к скрипту читающему сообщения

 
     if(timer < 100) survey();	 // Запускаем функцию пока таймер не больше 100
 
  }, speed);

})();

Ну и как обычно разберем что к чему. 

survey()  - это функция которая, через определенное время, вызывает сама себя.

let speed = '1000' - скорость обновления. В самом начале функция будет работать каждую секунду.

Через 10 секунд скорость упадет до 5 секунд  if( timer > 10 ) speed = '5000'

Через 50  до 10  else if( timer > 50) speed = '10000' и так далее

В принципе скорость можно и не менять.

Проблема в том, что если страницу, где происходит обновление не закрыть, она так и будет создавать нагрузку на сервер. Постепенно понижая скорость мы снижаем ее.

Теперь вопрос, а если человек вообще уйдет или переключится на что-то другое? Нам нужно учесть и это.

if(timer < 100) survey() . Теперь функция будет обновляться до тех пор, пока таймер не привысит 100. 

В принципе вот и все.

Да, вот еще что. В данной реализации функция будет обновляться до тех пор, пока таймер меньше 100 даже если пользователь активен.

Чтобы этого ни случилось, обнуляйте таймер, например когда юзер отправляет сообщение.

 

🔥
0
🚀
0
0
👎
0
Новое на сайте