Если вы хотите реализовать это самостоятельно, вам нужно решить, когда получить время начала - вы можете поместить тег сценария в верхней части страницы, который может выполняться до визуализации содержимого, в событии onload, которая будет ждать, пока все изображения и сценарии не будут загружены, или что-то вроде события готовности JQuery , которое происходит, когда DOM готов, но не ожидает загрузки ресурсов. На этом этапе вам нужно записать время начала:
<script>var startTime = new Date().getTime();</script>
Затем вы можете прослушать событие onunload или onbeforeunload и использовать изображение для отправки запроса GET с информацией:
<script>
window.onunload = function() {
var i = new Image();
var timeSpentMilliseconds = new Date().getTime() - startTime;
i.src = '/pagetime?timespent=' + timeSpentMilliseconds;
}
</script>
Вам нужно будет провести некоторое тестирование, чтобы увидеть, всегда ли отправляются запросы - я уверен, что иногда браузер закрывается или вкладка переключается до того, как они завершают работу.