прерывание refre sh событие, когда фокус на поле ввода - PullRequest
1 голос
/ 13 апреля 2020

У меня есть скрипт, который проверяет каждые 10 секунд, если refre sh страница (если ajax response = 1), эта страница также имеет окно чата. Если у пользователя есть фокус (и запись) в окне чата, автоматическая проверка sh должна прекратиться.

возможно ли это сделать?

JQUERY

$( document ).ready(function() {
setInterval( CheckUpdate, 10000, 22 );
});

function CheckUpdate(n){    
$.post( "test.php", { game: n })
  .done(function( data ) {
    if (data==1) window.location.href = "https://thispagerefresh.com";
  });
}

HTML

<form action=? method=post id=chatform>
  <input type="text" name=chat id=chatinput>
    <button type="submit" name=chatbtn id=chatbtn>Send</button>
</form>

1 Ответ

1 голос
/ 13 апреля 2020

Вы можете решить эту проблему, предварительно сохранив возвращаемое значение setInterval() в переменной.

// Syntax
var intervalID = setInterval(func, [delay, arg1, arg2, ...]);

Возвращаемое intervalID - это число c, ненулевое значение, которое идентифицирует таймер, созданный при вызове setInterval(). Затем, когда у пользователя есть фокус (и запись) в окне чата, мы просто останавливаем setInterval, используя это сохраненное значение, используя метод clearInterval().

// Syntax
clearInterval(intervalID)

Итак, полный код будет выглядеть так:

$(document).ready(function() {
  var intervalID = setInterval(CheckUpdate, 10000, 22);

  // Check if user has the focus (and writing) in the chatbox
  $("#chatinput").on("input", function() {
    clearInterval(intervalID)
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...