Vi esta pregunta en stackoverflow, pero no se siente que fue contestado en absoluto.

Es $(document).ready necesario?

Puedo enlazar todos mis javascripts en la parte inferior de la página, así que en teoría están funcionando todos después de que el documento está listo de todos modos.

  • Los navegadores más antiguos no pueden disfrutar de la descarga en paralelo que los nuevos navegadores emplean. Ese es el principal razonamiento de las secuencias de comandos se coloca en la parte inferior. Específicamente se permite el HTML y el CSS para que se procesa primero en los navegadores más antiguos. En este punto, usted tiene que tomar una decisión sobre cómo quiere llevar a cabo la detección de que el DOM esté cargado. Los dos métodos populares para patear fuera de su js son de la ventana.onload & $(document).listo (en conjunto con jQuery). Hay otras opciones & buscar fácilmente, obvio desventajas de la ventana.onload. El punto es $(document).listo funciona más a menudo que no & es fácil de usar.

5 Comentarios

  1. 122

    Es $(document).ready necesario?

    no

    si ha colocado todas las secuencias de comandos a la derecha antes de que el </body> etiqueta de cierre, usted ha hecho exactamente lo mismo.

    Además, si la secuencia de comandos no necesitan acceder a la DOM, no importa dónde se ha cargado más allá de posibles dependencias en otros scripts.

    Para muchos CMS, no tienen muchas opciones de donde los scripts se cargan, por lo que es una buena forma para modular código para utilizar el document.ready evento. ¿Realmente quieres volver y depuración de código anterior si reutilizar en otro lugar?

    off-topic:

    Como nota: debe utilizar jQuery(function($){...}); en lugar de $(document).ready(function(){...}); como obliga el alias de $.

    • Está usted seguro de que su «exactamente lo mismo»? Yo estaba bajo la impresión de que su css (o cualquier otro código cargado en paralelo con el html principal) puede no ser completamente analizada.
    • el documento puede estar listo antes de que CSS es completamente analizada. document.ready no es lo mismo como el onload evento, donde las imágenes y otros activos exteriores han terminado de cargar.
    • Gracias por la aclaración.
    • Este «no» solo me costo 3 horas de trabajo.. sólo asegúrese de u dont error </body>, con <body> 🙂
    • No estoy necesariamente de acuerdo con obligando a los alias, especialmente si noConflict() debe ser utilizado por alguna razón.
    • El alias está obligado a $ dentro de la devolución de llamada donde tendría sentido para $ para referirse a jQuery. Usted puede, por supuesto, cambiar el alias de lo que usted prefiere usar.
    • Por el equivalente de onload, uso $(window).load().

  2. 22

    No, si el javascript es la última cosa antes de cerrar usted no tendrá que agregar las etiquetas.

    Como una nota del lado, una abreviación de $(document).listo es el código de abajo.

    $(function() {
    //do something on document ready
    });

    Esta pregunta podría ser buena. ¿La has leído?
    jQuery: ¿por Qué utilizar el documento.listo si JS externo en la parte inferior de la página?

    • La pregunta es, esencialmente, «necesito documento listo cuando pongo mi secuencias de comandos en la parte inferior del cuerpo?», «no hay un acceso directo forma de escribir $(document).ready()«.
  3. 4

    No, No es necesario siempre que usted sabe que usted no tiene ningún diferidos están sucediendo cosas– y en la mayoría de los casos, usted sabrá si usted ha desarrollado en qué estás trabajando desde la parte superior a la parte inferior.

    –Es cuando en el código de otra persona, sin fondo de auditoría, que usted no sabe.

    Así, pregúntate a ti mismo utilizando un marco o el editor que le ayuda con la estructura? Aporta en el código de otra persona y usted no se ha molestado en leer a través de cada archivo? Estás preparado para pasar por el Sistema Operativo, el Navegador y la Versión del Navegador de la matriz de probar su código? ¿Necesidad exprimir cada onza de la velocidad de tu código?

    documento.listo() hace que muchos de esos pregunta que se vuelven irrelevantes. documento.listo() fue diseñado para hacer su vida más fácil. Viene en un pequeño (y me atrevo a decir que es aceptable) de rendimiento.

  4. 1

    He visto referencias/blog a través de internet sobre el uso de jquery document.ready. En mi opinión tanto de su uso o poniendo todo su código javascript en la parte inferior de la página son válidos. Y ahora la pregunta sería cual sería mejor? Es sólo una cuestión de estilo de programación.

  5. 0

    No, no es necesario. Usted puede poner la etiqueta de script a la derecha antes de que el cuerpo de la etiqueta de cierre o si usted está apoyando IE9+ puede utilizar nativo de JS.

    <script>alert('DOM Loaded!');</script>
    </body>
    
    <script>
    document.addEventListener("DOMContentLoaded", function(event) { 
          //DOM has loaded ready to fire JS scripts
        });
    </script>

Dejar respuesta

Please enter your comment!
Please enter your name here