Как я могу запустить функцию JavaScript на всех разных страницах моего веб-сайта?

#javascript #jquery

#javascript #jquery

Вопрос:

Я хочу реализовать какой-то счетчик того, сколько времени пользователь проводит на моем веб-сайте, и отобразить его на странице контактов.
Пока у меня есть этот небольшой фрагмент кода JavaScript:

 var time = 1;
function timeHere() {
    time = time   1;
    finalTime = time / 10;
    document.getElementById("counter_container").innerHTML = "You've just spend "  finalTime   " seconds looking at my homepage.";
}
  

И я выполняю ее с помощью setInterval(timeHere(), 100);
К сожалению, это занимает всего 0,2 секунды, и я думаю, это потому, что setInterval метод выполняется только один раз, и я должен искать способ зациклить его.
Но основная проблема, с которой я сталкиваюсь, заключается в том, как я могу заставить timeHere функцию работать на всех разных страницах веб-сайта и при этом считать секунды.
Я хочу разместить этот проект с использованием Github Pages, поэтому PHP-решение мне не очень поможет в этом случае.

Комментарии:

1. попробуйте посмотреть файлы cookie и сеансы с помощью JS 🙂 быстрый поиск в Google по файлам cookie и JS, надеюсь, подскажет вам способ : D

2. Поскольку JS является клиентской частью, ваши инструменты ограничены только файлами cookie или локальным хранилищем.

3. Попробуйте worker в фоновом режиме

Ответ №1:

Я не думаю, что вы действительно можете запустить вызов javascript, который повлияет на все страницы одновременно. По крайней мере, я не думаю, что это лучшее решение этой проблемы.

Установите cookie (или используйте локальное хранилище) для пользователя. Используйте какой-либо токен (если они вошли в систему, возможно, идентификатор, если нет, возможно, IP), а затем

 $.cookie(user, time_spent)
  

Затем просто = время к времени, потраченному на этот пользовательский файл cookie.

Кроме того, существует множество похожих инструментов отслеживания. Я уверен, что если вы не хотите создавать свою собственную версию, Google Analytics, вероятно, сделает это за вас за несколько минут.