Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Измерение времени открытия страницы
 
 автор: Владимир55   (25.08.2009 в 16:49)   письмо автору
 
 

Есть желание собрать статистику времени открытия страницы у пользователя. Для этого предполагается произвести измерения времени каждого открытия страницы и занести эти данные в базу для дальнейшей обработки.

В самом начале страницы записан такой код:
       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 сек. Это и понятно - измерено время вызова кеша.

Что-то здесь неверно методически. Что именно?

  Ответить  
 
 автор: coloboc66   (25.08.2009 в 17:58)   письмо автору
 
   для: Владимир55   (25.08.2009 в 16:49)
 

Чего-то неохота вникать сейчас в ваш код, но я бы сделал это ява-скриптом и аяксом: засёк бы время щелчка пользователем по ссылке, засёк бы время по событию onload страницы, отправил бы эти времена на сервер и математически посчитал бы разницу.

  Ответить  
 
 автор: Владимир55   (25.08.2009 в 18:08)   письмо автору
 
   для: coloboc66   (25.08.2009 в 17:58)
 

Уверен, что при Вашей квалификации Вам несложно разобрать составленный мною код.

  Ответить  
 
 автор: Вот случайно зашел   (25.08.2009 в 20:02)   письмо автору
 
   для: Владимир55   (25.08.2009 в 16:49)
 

Код немного надо переписать, если написать так microtime(1) либо так microtime(true), то функция возвратит float, т.е. разбиение строки на элементы массива эксплодом будет не нужно... А с картинкой идея хорошая...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования