Задать вопрос
@raxweb

Как php + js точно и легковесно определить, что на страницу зашел человек (для счетчика посещений)?

Для нескольких страниц своего сайта (например, вот) я поставил счетчик посещений страниц (пока только на php).

Подскажите, пожалуйста, javascript-событие, которое:

- Происходит в браузере только у людей (не у роботов).
- Происходит единожды - что бы из js отдавать php-скрипту счетчика событие только один раз при просмотре страницы - что бы меньше дергать скрипт.

Уточню - счетчик должен считать только факт просмотра страницы. Т.е. необходим счетчик просмотров.
  • Вопрос задан
  • 331 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
@raxweb Автор вопроса
Собрал рабочий скрипт, посмотрите, пожалуйста.
Если его как-то можно упростить или облегчить, то пишите, буду вносить исправления.

<script type="text/javascript">

var human_detected = false;//для однократного запуска функции

//3 события, каждое из которых показывает, что на странице человек
document.onmouseover = is_human_view;//нахождение мыши на документе
document.onscroll = is_human_view;//скролл
document.addEventListener("touchstart", is_human_view);//тач на мобилке

function is_human_view ()
{
	if (human_detected == false)//если функция еще не запускалась
	{
	alert ('IS HUMAN VIEW');
	human_detected = true;//уже определили просмотр страницы человеком, больше запускать фунцию не будем
	}
}

</script>


Можно посмотреть его работу, например, здесь - при событии просмотра человеком запускается функция is_human_view, а в верхней части страницы (рядом с рейтингом звездами) Вы увидите зелененьким +1.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Igor_307
@Igor_307
Фрилансер
- Происходит в браузере только у людей (не у роботов).
- Происходит единожды


событие DOMContentLoaded например, или onload подробнее тут

document.addEventListener("DOMContentLoaded", function(){
    //ваш ajax запрос
});


только все это фигня, если нужна статистика посещений, проще подключить какую нибудь аналитику
Ответ написан
zkrvndm
@zkrvndm
Архитектор решений
Вешай реакцию на событие скрола, а чтобы дважды не отсылать, сохраняй статус отправки в переменную.
Ответ написан
@spaceatmoon
На 99% точное это покупка чего либо на вашем сайте. Всё остальное генерится миллионами бесплатно.

По поводу вопроса, можешь считать только уникальные сессии, дважды одну сессию не считать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы