Я хотел бы добавить свое решение, чтобы получить достоверную статистику о том, сколько реальных пользователей посещают мой сайт с отключенным JavaScript для всех пользователей. Проверка проводится один раз за сеанс с этими преимуществами:
- Пользователи, посещающие 100 страниц или только 1, считаются по 1 на каждого. Это позволяет сосредоточиться на отдельных пользователях, а не на страницах.
- В любом случае не нарушает поток, структуру или семантику страницы
- Может войти пользовательский агент. Это позволяет исключить ботов из статистики, таких как бот Google и бот Bing, которые обычно отключают JS! Может также войти IP, время и т. Д ...
- Всего одна проверка на сеанс (минимальная перегрузка)
Мой код использует PHP, mysql и jquery с ajax, но может быть адаптирован для других языков:
Создайте таблицу в своей БД, как эта:
CREATE TABLE IF NOT EXISTS `log_JS` (
`logJS_id` int(11) NOT NULL AUTO_INCREMENT,
`data_ins` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`session_id` varchar(50) NOT NULL,
`JS_ON` tinyint(1) NOT NULL DEFAULT '0',
`agent` varchar(255) DEFAULT NULL,
PRIMARY KEY (`logJS_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Добавьте это на каждую страницу после использования session_start () или эквивалентного (требуется jquery):
<? if (!isset($_SESSION["JSTest"]))
{
mysql_query("INSERT INTO log_JS (session_id, agent) VALUES ('" . mysql_real_escape_string(session_id()) . "', '" . mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']). "')");
$_SESSION["JSTest"] = 1; // One time per session
?>
<script type="text/javascript">
$(document).ready(function() { $.get('JSOK.php'); });
</script>
<?
}
?>
Создайте страницу JSOK.php следующим образом:
<?
include_once("[DB connection file].php");
mysql_query("UPDATE log_JS SET JS_ON = 1 WHERE session_id = '" . mysql_real_escape_string(session_id()) . "'");