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
Новое на сайте