Foros del Web » Programando para Internet » Javascript »

Comprobar si se cargaron todos los elementos del sitio

Estas en el tema de Comprobar si se cargaron todos los elementos del sitio en el foro de Javascript en Foros del Web. Buenas a todos, como dice en el título ando necesitando un script para detectar si se cargaron todos los elementos de la web. Agradecería mucho ...
  #1 (permalink)  
Antiguo 21/05/2008, 21:46
 
Fecha de Ingreso: mayo-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Comprobar si se cargaron todos los elementos del sitio

Buenas a todos, como dice en el título ando necesitando un script para detectar si se cargaron todos los elementos de la web.
Agradecería mucho a cualquiera que me tire una ayudita :), cualquier cosa sirve.

Saludos!
  #2 (permalink)  
Antiguo 21/05/2008, 22:16
 
Fecha de Ingreso: mayo-2008
Mensajes: 43
Antigüedad: 16 años
Puntos: 0
Respuesta: Comprobar si se cargaron todos los elementos del sitio

hace una function que busque getElementById y que el value sea distintos a null
te tiro por arriba codigo
function(){
document.(aca de donde estan los elementos formularios,etc).getElementById.(donde Id es el id del elemento a controlar).value(es el valor)=null
}
no se si null se aplica a todos los navegadores creo qu podes usar algo con ! para que decir distinto..... espero que te haya servido!
  #3 (permalink)  
Antiguo 22/05/2008, 08:37
 
Fecha de Ingreso: mayo-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Respuesta: Comprobar si se cargaron todos los elementos del sitio

No la veo muy bien esa solución guzmange... Yo tenía pensado al parecido a como se hace en actionScript para hacer un preloader, que comprueba que porcentaje de los bytes se cargaron, no sé si es posible...

Saludos y gracias por contestar de todas formas.
  #4 (permalink)  
Antiguo 23/05/2008, 15:31
 
Fecha de Ingreso: mayo-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Respuesta: Comprobar si se cargaron todos los elementos del sitio

A nadie se le ocurre nada? es urgente... gracias
  #5 (permalink)  
Antiguo 25/05/2008, 08:25
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Comprobar si se cargaron todos los elementos del sitio

Antes que nada habría que ver bien a qué llamás cargar totalmente. Si te referís a si para javascript están disponibles los elementos o si cargaron las fuentes externas (css, imágenes, archivos javascript, archivos swf, etc.)
(En javascript no es posible un getBytesLoaded() ni un getBytesTotal()).
Si te referís a lo primero, existen cosas como domReady, que usan algunos Frameworks, cuya idea podés ver aquí:http://brothercake.com/site/resources/scripts/domready/
Si te referís a lo segundo, tendrás que ver cada caso en particular. Para imágenes existe un atributo complete, que se pone a true cuando la imagen terminó de cargarse, en las faq el amigo caricatos (hola, Maestro!) puso un ejemplo para construir una barra de progreso en función a un temporizador que se dispara al cargar la página y comprueba el atributo complete de los diferentes elementos del vector document.images para renderizar el avance de la barra. Para css y javascript, en explorer es posible detectar el fin de la descarga si cargamos a demanda, ya que está disponible el atributo onreadystatechange, pero en Firefox no (algunos dicen que funciona el evento onload (http://www.phpied.com/javascript-include-ready-onload/), pero no es cierto: esta vez, extrañamente explorer lo hace mejor que firefox). Para swf, podés crear una función que llame a javascript cuando getBytesLoaded()==getBytestTotal(), pero tendrás que tener acceso al fla, y para otros casos, la cosa es similar.
Bueno, no sé si aclaré u oscurecí, pero la cosa es más o menos así.

Última edición por Panino5001; 25/05/2008 a las 08:56
  #6 (permalink)  
Antiguo 25/05/2008, 18:35
 
Fecha de Ingreso: mayo-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Respuesta: Comprobar si se cargaron todos los elementos del sitio

Cita:
Iniciado por Panino5001 Ver Mensaje
Antes que nada habría que ver bien a qué llamás cargar totalmente. Si te referís a si para javascript están disponibles los elementos o si cargaron las fuentes externas (css, imágenes, archivos javascript, archivos swf, etc.)
(En javascript no es posible un getBytesLoaded() ni un getBytesTotal()).
Si te referís a lo primero, existen cosas como domReady, que usan algunos Frameworks, cuya idea podés ver aquí:http://brothercake.com/site/resources/scripts/domready
Si te referís a lo segundo, tendrás que ver cada caso en particular. Para imágenes existe un atributo complete, que se pone a true cuando la imagen terminó de cargarse, en las faq el amigo caricatos (hola, Maestro!) puso un ejemplo para construir una barra de progreso en función a un temporizador que se dispara al cargar la página y comprueba el atributo complete de los diferentes elementos del vector document.images para renderizar el avance de la barra. Para css y javascript, en explorer es posible detectar el fin de la descarga si cargamos a demanda, ya que está disponible el atributo onreadystatechange, pero en Firefox no (algunos dicen que funciona el evento onload (http://www.phpied.com/javascript-include-ready-onload/), pero no es cierto: esta vez, extrañamente explorer lo hace mejor que firefox). Para swf, podés crear una función que llame a javascript cuando getBytesLoaded()==getBytestTotal(), pero tendrás que tener acceso al fla, y para otros casos, la cosa es similar.
Bueno, no sé si aclaré u oscurecí, pero la cosa es más o menos así.

Hola Panino5001, desde ya muchas gracias por la respuesta. Perdón por no haberme expresado correctamente, a lo que me refiero en particular es a los Javascript, necesitaría saber cuando se han cargado todos los javascript.
El problema es que no estan todos en el head, algunos están repartidos por la web (publicidad). Lo que necesito concretamente es crear un condicional, y que si no se cargaron todos los Javascript del sitio, retorne false.

Espero haberme explicado mejor ahora, de todas formas gracias por toda la info.

Un saludo.
  #7 (permalink)  
Antiguo 25/05/2008, 21:28
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Comprobar si se cargaron todos los elementos del sitio

Por los que están dentro del body no tendrás que preocuparte: el body onload o el window.onload no llegará hasta que no estén cargados, de manera que cuando esos eventos se produzcan esos js ya estarán cargados. El problema se reduce a los scripts que están fuera del body. Para ello podés determinar el fin de la carga con algo como esto:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>test</title>
<
script>
var 
scrs=['algo.js','algo3.js','algo2.js'];
var 
cargados=0;
function 
adjs(url){
    
    
sc=document.createElement('script');
    if(
sc.addEventListener)
        
sc.addEventListener('load',function(){cargados++},false);
    else
        
sc.onreadystatechange=function(){
            if(
sc.readyState=='complete' || sc.readyState=='loaded')cargados++;
    }
    
   
    
sc.src=url;
    
document.getElementsByTagName('body')[0].appendChild(sc);

function 
loadScript(){
for(var 
i=0;i<scrs.length;i++){
    
adjs(scrs[i]);
}
}
window.onload=function(){
    
loadScript();
    var 
int=setInterval(function(){if(scrs.length==cargados){alert('todos cargados');clearInterval(int)}},200)
}
</script>
</head>

<body>
</body>
</html> 
Como ves, en lugar de cargarlos como se haría habitualmente: <script src="algo.js"></script>, deberás sumar los scripts a cargar en el array scrs. De esa manera podrás controlar si cargaron o no.
En este caso es más o menos simple, ya que los diferentes navegadores nos dan herramientas para detectar la carga usando únicamente javascript (si fueran estilos css sería más complejo, porque tendríamos que usar javascript para algunos navegadores y XBL para otros)

Última edición por Panino5001; 26/05/2008 a las 05:51
  #8 (permalink)  
Antiguo 26/05/2008, 10:17
 
Fecha de Ingreso: mayo-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Respuesta: Comprobar si se cargaron todos los elementos del sitio

Mil gracias Panino5001, afortunadamente lo pude solucionar con el body.onload, ya que el problema era en el body.
De nuevo mil gracias por tu dedicación, un saludo!
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:28.