Saber el tiempo que está en una página
Hola a todos, tengo una duda que no se como solucionar. Estoy creando una aplicación para intranet, en la cual quieren saber el tiempo que esta el usuario desde que entre an la pagina hasta que sale (estará compuesta por varios html, supongo y dará en tiempo en cada uno). He pensado que enviando a una bbdd la fecha y hora de entrada, y que al dar el botón o lo que sea, para ir a la siguiente, tambien envie estos datos... tipo php y mysql... la teoría creo que sería esa, pero en la práctica esoty bastante verde y no se si es esta la forma o hay formas más fáciles. La verdad es que soy más diseñador que otra cosa pero tengo este problema y busque y no encontré algo que me valiera.
Muchas gracias
tutututt Profesor Plus
No estoy del todo seguro, pero creo que google analytics te puede servir.
dagi3d
que yo sepa google analytics ofrece ese dato(el tiempo medio) aunque no sé si a nivel de página o a nivel general del dominio. de todas maneras no le termino de ver mucha utilidad... ¿qué es lo que aporta ese dato para el funcionamiento de una intranet?
si no te vale lo que ofrece google, la idea sería utilizar los eventos onload y onunload para hacer una petición cada vez que entren y cierren la página.
como primera aproximación se me ocurre lo siguiente:
cuando el usuario entra y se carga el documento hace una petición por ajax pasando el id del usuario y la url de la página. cuando le llega dicha petición se almacenan estos datos junto a la hora y devuelve como respuesta un identificador único para dicho movimiento. una vez el cliente obtiene la respuesta, ya puede definir la función onunload. así te asegurarías que hay coherencia con los datos ya que podría ocurrir que cerrasen la página y que no diese tiempo a mandar/recibir los datos.
luego cuando cierren la página, se hace una última petición al servidor pasando el identificador único del movimiento y éste guardará la fecha/hora en ese momento (también podría calcular la diferencia de tiempo y saber el tiempo)
de todas maneras para esto aunque no sería difícil de implementar igual os face falta un programador que tenga alguna noción sobre programación para el servidor
creartdc
ok entiendo, respecto a la utilidad de este codigo sería la siguiente:
En la intranet los empleados deben realizar ejercicios tipo quiz que estan hechos en AS y flash, entonces lo que pretende el cliente es saber cuanto tiempo emplean en cada página y en resolver los ejercicios. Ademas llevarán videos y textos y quieren controlar que no se los salten ni nada de eso, de ahí lo de los tiempos de realización (de estar en cada página).
Muchas gracias a los dos y espero haberlo explicado mejor...
dagi3d
ok, ahí sí que veo la necesidad de controlar el tiempo. para lo que planteas, las plataformas de cursos online que he utilizado, lo que hacen es simplemente guardar la hora cuando se pulse sobre comenzar el ejercicio y volver a guardarlo cuando se haya completado, con lo que todo el rollo del javascript no te hace falta para nada
si necesitas que se traguen los videos, bastaría con que las películas flash hiciesen una petición al servidor cuando termine la reproducción y así podrías autorizar la finalización de los tests
creartdc
dagi3d muchas gracias por la respuesta, investigaré un poco sobre las plataformas de cursos online, si tengo alguna duda os consultaré..
mil gracias de nuevo
DwUoMo
Yo una vez lo tuve que hacer, pero eso ya no es una cuestión de los lenguajes de servidor ninguno te va a dar el tiempo exacto que un usuario determinado esta navegando en tu web, porque ¿ como determinas cuando se ha ido ?, yo despues de investigar mucho al final tuve que hacerlo en #C, la única forma que yo he encontrado en hacer correr un script en el servidor que se comunique con php mediante soap y que realice un conteo de el tiempo que esta activa una sesion concreta en el servidor, cualquier otra solucion pasa por realizar un acercamiento pero nunca una medida exacta.
flai
No lo he hecho nunca, aunque reconozco que llevo tiempo queriendo probar a ver si lo consigo (ya que Google sí que lo hace).
Se me ocurre que jueges con que en los eventos load y unload de javascript se envien peticiones AJAX a un servidor que guarde la hora de inicio (al lanzarse el evento load) y la hora de salida (evento unload), el tiempo lo calculas como la resta de ambos.