Как проверить, работает ли JQuery в другом окне? - PullRequest
0 голосов
/ 28 июня 2018

У меня есть скрипт, который должен делать много вещей, когда пользователь онлайн.

script.js:

function myFunction() {
    myVar = setInterval(online, 10000);
}

function online() {
        $.ajax({
        url: "/php/online.php",
        type: 'post'
        });
    });
}

Этот PHP делает много работ, которые мне просто нужно делать один раз в 10 секунд. Проблема в том, что если пользователь открывает много вкладок или окон браузера, этот скрипт будет запускаться много раз. Я просто хочу, чтобы он запускался один раз в одном окне, но всегда запускаю это. есть идеи? Если возможно, простые.

1 Ответ

0 голосов
/ 28 июня 2018

Каждый раз, когда делается запрос, вы можете установить элемент на localStorage, соответствующий текущей отметке времени, и проверить, что разница между элементом localStorage и сейчас составляет не менее 10 секунд перед отправкой запроса:

function myFunction() {
  myVar = setInterval(online, 10000);
}

function online() {
  const now = Date.now();
  if (localStorage.lastPing && now - Number(localStorage.lastPing) < 10000) return;
  localStorage.lastPing = now;
  $.ajax({
    url: "/php/online.php",
    type: 'post'
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...