Muy interesante punto de vista Flaviovich, tus camaradas rusos son unos hachas xD)!!!. Yo aporto otra alternativa por si los visitantes no tienen habilitadas las cookies. Se trata del punto 2) que mencionaba nuestro colega
jam1138 en este mismo tema, unos comentarios arriba:
"lanzar por debajo un pop-up que hará el monitoreo y se cerrará automáticamente". Quizás sea algo rudimentaria pero es lo mejor que tenía hasta ahora. Funciona en IE, Netscape y Ff pero tiene importantes puntos negativos:
1- ralentiza algo la navegación pero sin exagerar.
2- el evento "
onBeforeUnload" no se ejecuta cuando el usuario cierra el navegador o se va a otra web. Es decir actúa como un "onUnload" entre las páginas del sitio, por lo que la medición del tiempo de visita sigue sin ser exacta.
3- posible bloqueo de popups por parte del visitante.
En cada página de nuestro sitio colocamos esta etiqueta body:
Código HTML:
<body onBeforeUnload="window.reload();if(window.event) window.open('DoDate_End.php','winfin','z-lock=yes, alwaysLowered=yes, width=0,height=0, top=0, left=0, scrollbars=no, status=no, titlebar=no, toolbar=no');window.focus();">
Con "window.focus();" mantenemos el protagonismo en la ventana ppal.
Clásico fichero de actualización de la hora, 'DoDate_End.php':
Código PHP:
session_start();
echo "<script>self.blur();</script>"; //quita protagonismo a la ventana abierta
$SentenciaSql="UPDATE Visitantes SET Date_End ='".time()."' WHERE IdVisitante ='".$_SESSION['idvisitante']."'";
$result=@mysql_query($SentenciaSql); //insertamos fecha actual en bbdd cada vez q hay evento onBeforeOnload
unset($result);
echo "<script>window.close();</script>"; //cierra ventana abierta