Pregunta

Si tengo una página que se genera usando PHP y luego se modifica usando JS que se ejecuta usando:

window.onload=myFunction;

Luego, el usuario ve la página original, que luego parece moverse mientras se ejecuta el código js y agrega sus propios bits en la página.

¿Hay alguna manera de evitar que el usuario pueda ver este proceso, o al menos hacerlo menos obvio para ellos? ¿Quizás haya un método más adecuado para cargar el javascript que window.onload (uno que pueda comenzar a funcionar a medida que se descargan las imágenes, etc.)?

¿Fue útil?

Solución

Recomendaría primero la configuración de alguna clase en el cuerpo que alternará la visibilidad de algunos elementos.

<body class="loading"> .... </body>

Luego, cuando el script termine de cargarse, puede eliminar esta clase y mostrar todo lo que necesita. Incluso puede usar el " cargando " clase para mostrar un fondo elegante, como un círculo giratorio de puntos en Mozilla.

También algunos proyectos usan otro método para cargar scripts en lugar de "onLoad". Primero crea una matriz global, digamos, llamada "domReady".

window.domReady = [];

Y cuando necesite agregar alguna función que se ejecutará en la carga de la página, simplemente presione en esta matriz:

window.domReady.push( function foo(){ alert('Hey!'); } );

Y en la última línea del documento coloca la función que ejecutará todos los procedimientos empujados:

for (procedure in window.domReady) {
    window.domReady[procedure].call();
}

Dado que será la última línea del documento antes de la etiqueta de cierre, el DOM estará listo y no tendrá que esperar hasta que se carguen todas las imágenes.

Otros consejos

OK, encontré esta pequeña pepita de jquery que funciona como un regalo:

$(document).ready(function() {
  //Call your function here
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top