Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 14 Septiembre 2019, 03:50 am



Título: [Resuelto] [Pregunta]: Window ready y Document ready ¿Diferencias?
Publicado por: Leguim en 14 Septiembre 2019, 03:50 am
Básicamente eso,
cuales son las diferencias entre usar la función que tiene jquery ($(window).ready(function()) y ($(document).ready(function()) ya que no me termina de quedar muy en claro, si se pudiera también me interesaría entender cual es la diferencia entre un document load y un document ready.

¡Muchas gracias!


Título: Re: [Pregunta]: Window ready y Document ready ¿Diferencias?
Publicado por: engel lex en 14 Septiembre 2019, 04:45 am
$(document).ready será llamado cuando la pagine cargue todos los elementos html que le correspondan al DOM, esto por ejemplo no incluye los frames o iframes, ya que eso corresponde a su propio documento, en cambio $(window).ready esperará a TODO estar cargado

document load esperará a que carguen las imagenes y todo el contenido incluido, por otro lado un document ready se disparará cuando se cargue lo correspondiente al DOM (no necesariamente su contenido)


Título: Re: [Pregunta]: Window ready y Document ready ¿Diferencias?
Publicado por: Leguim en 14 Septiembre 2019, 05:13 am
$(document).ready será llamado cuando la pagine cargue todos los elementos html que le correspondan al DOM, esto por ejemplo no incluye los frames o iframes, ya que eso corresponde a su propio documento, en cambio $(window).ready esperará a TODO estar cargado

document load esperará a que carguen las imagenes y todo el contenido incluido, por otro lado un document ready se disparará cuando se cargue lo correspondiente al DOM (no necesariamente su contenido)

$(window).ready digamos al cargar todo también esperará a que carguen las imagenes?


Título: Re: [Pregunta]: Window ready y Document ready ¿Diferencias?
Publicado por: engel lex en 14 Septiembre 2019, 10:33 am
$(window).ready digamos al cargar todo también esperará a que carguen las imagenes?

puedes hacer la prueba...

pero no, en general el ready es que todos los componentes está listos para ser usados/manipulados en lo que en general se refiere al famoso "DOM", esto no incluye el contenido de cosas como las imagenes...

el onload indica que el contenido fue (des)cargado, basicamente se llama cuando ya todas las llamadas iniciales fueron cerradas


Título: Re: [Pregunta]: Window ready y Document ready ¿Diferencias?
Publicado por: @XSStringManolo en 14 Septiembre 2019, 11:43 am
https://developer.mozilla.org/es/docs/Web/API/GlobalEventHandlers
https://developer.mozilla.org/es/docs/Web/API/GlobalEventHandlers/onload
https://developer.mozilla.org/en-US/docs/Web/Events
Esta muy bien la documentación de Mozilla. Guárdatela en favoritos porque te ahorrará mucho tiempo.


Título: Re: [Pregunta]: Window ready y Document ready ¿Diferencias?
Publicado por: Leguim en 14 Septiembre 2019, 12:55 pm
¡Muchas gracias otra vez a los dos!


Título: Re: [Pregunta]: Window ready y Document ready ¿Diferencias?
Publicado por: MinusFour en 14 Septiembre 2019, 16:59 pm
$(window).ready y $(document).ready son exactamente igual. De hecho, el .ready de jQuery usa ambos eventos, DOMContentLoaded y load. El .ready de  jquery también sigue disparando los handlers una vez que el documento este cargado, mientras que las APIs nativas solo disparan los handlers registrados antes de que ocurra el evento.


Título: Re: [Pregunta]: Window ready y Document ready ¿Diferencias?
Publicado por: EdePC en 15 Septiembre 2019, 03:16 am
Saludos,

- Siempre se puede utilizar las herramientas de desarrollador del navegador web, por ejemplo en Chrome está el apartado Performance que muestra los tiempos de carga de todos los elementos de la página web.

(https://i.ibb.co/zmNgnX8/domcontentload-windowsload.png)

- Se puede ver bien claro el tiempo de carga del DOM (evento DOMContentLoaded del document) en azul, y el Window Onload (evento load de window) en rojo. Onload se espera a que la imagen se termine de cargar.

- jQuery por defecto usa DOMContentLoad de document y como fallback el load de window, luego quita el evento cuando alguno de estos se ejecuta, es decir, el load de window es un "seguro" que se descarta si DOMContentLoad Funcionó:

Código
  1. // The ready event handler and self cleanup method
  2. function completed() {
  3. document.removeEventListener( "DOMContentLoaded", completed );
  4. window.removeEventListener( "load", completed );
  5. jQuery.ready();
  6. }
  7.  
  8. // Catch cases where $(document).ready() is called
  9. // after the browser event has already occurred.
  10. // Support: IE <=9 - 10 only
  11. // Older IE sometimes signals "interactive" too soon
  12. if ( document.readyState === "complete" ||
  13. ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
  14.  
  15. // Handle it asynchronously to allow scripts the opportunity to delay ready
  16. window.setTimeout( jQuery.ready );
  17.  
  18. } else {
  19.  
  20. // Use the handy event callback
  21. document.addEventListener( "DOMContentLoaded", completed );
  22.  
  23. // A fallback to window.onload, that will always work
  24. window.addEventListener( "load", completed );
  25. }