|
|
|
| Есть желание собрать статистику времени открытия страницы у пользователя. Для этого предполагается произвести измерения времени каждого открытия страницы и занести эти данные в базу для дальнейшей обработки.
В самом начале страницы записан такой код:
list($usec, $sec) = explode(" ", microtime());
$mks = substr ($usec, 2, 6) ;
$time_mks = $sec . $mks;
$start = time();
mysql_query ("INSERT INTO vit (time_mks, start)
VALUES ('$time_mks', '$start')");
|
Потом идет тело страницы, содержащее в HTML виде информацию для пользователя, после чего размещен код
echo "<img src='vit-f.php?ind=" . $time_mks . "' width='1' height='1' alt='' />";
|
Как я полагаю, вызов файла 'vit-f.php будет осуществлен после загрузки всей страницы полностью. Так ли это, я не уверен...
А в файле 'vit-f.php код такой:
$time_mks = $_GET['ind'];
$finih = time();
unset($row); // Удаление массива
$res = "";
$res = mysql_query("SELECT id FROM vit WHERE time_mks = '$time_mks'");
while($row = mysql_fetch_assoc($res)) $id = $row['id'];
if ($id) mysql_query("UPDATE vit SET finih = '$finih' WHERE id = '$id' ");
|
В принципе, всё это работает, и время открытия страницы фиксируется. Но я весьма сомневаюсь, что измеритель работает правильно.
Когда я сам открываю страницу своим броузером, у которого предварительно очищены временные файлы, то время завершения открытия не фиксируется, хотя страница открыта полностью.
При повторном открытии, когда уже сформировался кеш, время завершения открытия фиксируется и составляет 0-1 сек. Это и понятно - измерено время вызова кеша.
Что-то здесь неверно методически. Что именно? | |
|
|
|
|
|
|
|
для: Владимир55
(25.08.2009 в 16:49)
| | Чего-то неохота вникать сейчас в ваш код, но я бы сделал это ява-скриптом и аяксом: засёк бы время щелчка пользователем по ссылке, засёк бы время по событию onload страницы, отправил бы эти времена на сервер и математически посчитал бы разницу. | |
|
|
|
|
|
|
|
для: coloboc66
(25.08.2009 в 17:58)
| | Уверен, что при Вашей квалификации Вам несложно разобрать составленный мною код. | |
|
|
|
|
|
|
|
для: Владимир55
(25.08.2009 в 16:49)
| | Код немного надо переписать, если написать так microtime(1) либо так microtime(true), то функция возвратит float, т.е. разбиение строки на элементы массива эксплодом будет не нужно... А с картинкой идея хорошая... | |
|
|
|