Я ищу, чтобы отслеживать среднее время пользователей на веб-сайте (так же, как это делает аналитика Google) для внутреннего администрирования.
Какой самый простой способ сделать это?
Вы можете найти время следующими способами:
Если вам нужно, я могу написать пример скрипта.
ОБНОВИТЬ:
<!DOCTYPE html> <html> <head> <title>Collect time</title> <script type="text/javascript" src="jquery-1.4.2.min.js"></script> <script type="text/javascript"> $(function() { var start = null; $(window).load(function(event) { start = event.timeStamp; }); $(window).unload(function(event) { var time = event.timeStamp - start; $.post('/collect-user-time/ajax-backend.php', {time: time}); }) }); </script> </head> <body> </body> </html>
И внутренний скрипт:
<?php $time = intval($_POST['time']); if (!file_exists('data.txt')) { file_put_contents('data.txt', $time . "\n"); } else { file_put_contents('data.txt', $time . "\n", FILE_APPEND); }
Но, как я сказал, он не будет работать в браузере Opera
Главным образом я могу думать:
Когда пользователь сначала нажимает на страницу, вы регистрируете, скажем, свой IP-адрес, загруженную страницу и время. Затем, используя некоторые Javascript и AJAX, когда они покидают страницу, вы используете событие unload
для отправки обработчику AJAX, который записывает страницу и когда она уходит.
Вам нужно будет использовать какой-то идентификатор, кроме сеанса, для хранения посещения страницы. Скажем, у меня есть 5 экземпляров открытой страницы, поэтому вы хотите регистрировать их по отдельности. Итак, что-то вроде этого:
index.php
code: 2345
) Если они снова посещают index.php
, вы 36789
еще один код, скажем, 36789
. Использовать то, что генерирует случайный GUID, лучше всего, поэтому вы можете (по существу) игнорировать любые возможности коллизий в одной и той же комбинации IP / page / code.
Существует действительно не эффективный способ сделать это с PHP, так как PHP является серверным и не дает возможности определить, когда страница была закрыта. Для этого вам нужно использовать javascript.
То, что я хотел бы сделать, это использовать javascript для запуска таймера на window.onload
а затем завершить таймер на window.onunload
. Затем вы можете хранить данные и делать с ними то, что хотите.
$ (window) .unload – очень хорошая функция для отслеживания страницы, покидающей пользователя.
но один момент – когда выгружать окно для отправки ajax, когда-то он теперь работает, ajax не завершается, когда пользователь покидает страницу. поэтому вам нужно добавить один атрибут (async: false) в ajax, код – удар:
$.ajax({ type: 'POST', async: false, url: '/collect-user-time/ajax-backend.php', data: {time: time} });