Foros del Web » Programando para Internet » Javascript »

Tiempo que el navegador tarda en cargar la pagina

Estas en el tema de Tiempo que el navegador tarda en cargar la pagina en el foro de Javascript en Foros del Web. ¡Hola gente! Me pregunto... ¿se podría con javascript calcular el tiempo que tarda en cargarse una página? Igualmente que con PHP se puede saber el ...
  #1 (permalink)  
Antiguo 30/06/2003, 09:34
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 2 meses
Puntos: 55
Tiempo que el navegador tarda en cargar la pagina

¡Hola gente!
Me pregunto... ¿se podría con javascript calcular el tiempo que tarda en cargarse una página? Igualmente que con PHP se puede saber el tiempo que tardó en generarse, sería hacer algo para el lado del cliente...
Supongo que al inicio de la página habría que iniciar una variable con el tiempo actual, y luego hacer un onload que ejecute una función la cual me de el tiempo transcurrido desde la variable hasta el tiempo en que acabó de cargar.
Lo ideal sería que pudiera hacerse con centésimas o milésimas de segundo, pero bastaría con hacerlo en segundos redondos
¿Cómo podría hacerse?
Saludos y gracias anticipadas
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #2 (permalink)  
Antiguo 30/06/2003, 10:07
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, ferny.

Prueba este código a ver si te sirve. Te aparece un alert con el tiempo que ha tardado en cargar la página en milisegundos (salvo error por mi parte)
Código PHP:
<html>
<
head>
<
title>Untitled Document</title>
<
script>
var 
inicio=new Date();
inicio=inicio.getTime();
function 
ini() {
    
fin=new Date();
    
fin=fin.getTime();
    
tiempo=fin-inicio;
    
alert(tiempo);
}
</script>
</head>

<body onLoad="ini()">
</body>
</html> 
Saludos,
  #3 (permalink)  
Antiguo 30/06/2003, 10:44
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 2 meses
Puntos: 55
Parece que funciona bien, pero me asaltó una duda. El valor que devuelve getTime() son las 10 primeras cifras del valor de tiempo UNIX en segundos, y las 3 últimas las milésimas transcurridas ¿no? Entonces para saber el tiempo en segundos sería tiempo=(fin-inicio)/1000 (saldrían hasta 3 decimales ¿verdad?)
Sabes, encontré un error que no había detectado en mi página, ¡¡¡NO HACE ONLOAD!!! Con lo cual no puedo llamar a la función El motivo es una marquesina de últimos mensajes en el foro (al estilo de la de maestrosdelweb.com), pues si quito dicha marquesina tu código va perfectamente.
¿Sabes si habría una manera de evitar esto? El código javascript de la marquesina es
Cita:
<script language="JavaScript1.2">

/*
Cross browser Marquee II- © Dynamic Drive (www.dynamicdrive.com)
For full source code, 100's more DHTML scripts, and TOS, visit http://www.dynamicdrive.com
Credit MUST stay intact
*/

//Specify the marquee's width (in pixels)
var marqueewidth=127
//Specify the marquee's height
var marqueeheight=200
//Specify the marquee's marquee speed (larger is faster 1-10)
var marqueespeed=1
//Pause marquee onMousever (0=no. 1=yes)?
var pauseit=1

//Specify the marquee's content
//Keep all content on ONE line, and backslash any single quotations (ie: that\'s great):

//ATENCION: codigo PHP dentro
var marqueecontent='<? echo $total; ?>'

////NO NEED TO EDIT BELOW THIS LINE////////////

marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) //slow speed down by 1 for NS
var copyspeed=marqueespeed
var pausespeed=(pauseit==0)? copyspeed: 0
var iedom=document.all||document.getElementById
var actualheight=''
var cross_marquee, ns_marquee

function populate(){
if (iedom){
cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee
cross_marquee.style.top=marqueeheight+8
cross_marquee.innerHTML=marqueecontent
actualheight=cross_marquee.offsetHeight
}
else if (document.layers){
ns_marquee=document.ns_marquee.document.ns_marquee 2
ns_marquee.top=marqueeheight+8
ns_marquee.document.write(marqueecontent)
ns_marquee.document.close()
actualheight=ns_marquee.document.height
}
lefttime=setInterval("scrollmarquee()",40)
}
window.onload=populate

function scrollmarquee(){

if (iedom){
if (parseInt(cross_marquee.style.top)>(actualheight*(-1)+8))
cross_marquee.style.top=parseInt(cross_marquee.sty le.top)-copyspeed
else
cross_marquee.style.top=marqueeheight+8
}
else if (document.layers){
if (ns_marquee.top>(actualheight*(-1)+8))
ns_marquee.top-=copyspeed
else
ns_marquee.top=marqueeheight+8
}
}

if (iedom||document.layers){
with (document){
if (iedom){
write('<div style="border-style:solid;border-color:#000000;border-width:1px;width: 127px;border-bottom-width:0px;">')
write('<table cellspacing="0" cellpadding="2" width="125" border="0"><tr><td bgcolor="#000066" align="center"><font color="#FFFFFF" face="Courier New, Courier, mono" size="2"><b>Foro</b></font></td></tr></table></div>')
write('<div style="position:relative;border-style:solid;border-color:#000000;border-width:1px;border-top-width:0px;width:'+marqueewidth+';height:'+marqueeh eight+';overflow:hidden;background:#ccccff;" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
write('<div id="iemarquee" style="position:absolute;left:0;top:0;width:100%;" >')
write('</div></div>')
}
else if (document.layers){
write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee">')
write('<layer name="ns_marquee2" width='+marqueewidth+' height='+marqueeheight+' left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>')
write('</ilayer>')
}
}
}
</script>
Estaba pensando en que la marquesina no cargue, para entonces hacer un onLoad tal que empiece a correr la marquesina y se ejecute la función ini() ¿Se podría? ¿Cómo?
Saludos y gracias por tu tiempo
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #4 (permalink)  
Antiguo 30/06/2003, 10:52
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 2 meses
Puntos: 55
Es igual, ya lo solucioné: quité la línea window.onload=populate del código javascript que puse antes y luego en <body> puse onload="ini(); populate()" y funcionó. Quedó chulísimo (puedes verlo abajo del todo en cualquier página de mi web que no sea el foro)

MIL GRACIAS
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:52.