web-dev-qa-db-fra.com

Est-ce que $ (document) .ready est nécessaire?

J'ai vu cette question dans stackoverflow mais je ne pense pas qu'il a été répondu du tout.

Est-ce que $(document).ready est nécessaire?

Je lie tous mes javascripts au bas de la page, donc, en théorie, ils sont tous exécutés une fois le document prêt.

105
Joshua Robison

Est-ce que $(document).ready est nécessaire?

non

si vous avez placé tous vos scripts juste avant la balise de fermeture </body>, vous avez exactement fait la même chose.

De plus, si le script n'a pas besoin d'accéder au DOM, peu importe où il est chargé au-delà des dépendances possibles d'autres scripts.

Pour de nombreux CMS, vous n'avez pas beaucoup de choix quant au lieu de chargement des scripts. Il est donc préférable que le code modulaire utilise l'événement document.ready. Voulez-vous vraiment revenir en arrière et déboguer l'ancien code si vous le réutilisez ailleurs?

hors sujet:

En remarque: vous devriez utiliser jQuery(function($){...}); au lieu de $(document).ready(function(){...}); car il oblige l'alias à $.

120
zzzzBov

Non, si votre javascript est la dernière chose avant la fermeture, vous n'avez pas besoin d'ajouter ces balises.

En remarque, un raccourci pour $ (document) .ready est le code ci-dessous.

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

Cette question pourrait être bonne. L'avez-vous lu? jQuery: Pourquoi utiliser document.ready si un JS externe en bas de page?

22
turtlepick

Non, ce n'est pas nécessaire à condition que vous sachiez que rien n'est reporté - et dans la plupart des cas, vous saurez si vous avez développé ce sur quoi vous travaillez, de fond en comble.

--C'est lorsque vous introduisez le code de quelqu'un d'autre, sans le vérifier en profondeur, que vous ne le savez pas.

Alors, demandez-vous si vous utilisez un framework ou un éditeur qui vous aide avec la structure? Vous apportez le code de quelqu'un d'autre et vous n'avez pas pris la peine de lire chaque fichier? Êtes-vous prêt à passer par la matrice de système d'exploitation, de navigateur et de version du navigateur pour tester votre code? Est-ce que vous besoin de tirer chaque once de vitesse de votre code?

avec document.ready (), bon nombre de ces questions deviennent sans objet. document.ready () a été conçu pour vous simplifier la vie. Il vient à un petit (et j'ose dire acceptable) frappé de performance.

4
BradChesney79

J'ai vu des références/un article de blog sur Internet concernant l'utilisation de document.ready. À mon avis, l’utiliser ou mettre tout votre javascript au bas de la page est valide. Et maintenant la question serait quelle serait la meilleure? C'est juste une question de style de programmation.

1
Krishna Chytanya

Non, ce n'est pas nécessaire. Vous pouvez placer la balise de script juste avant la balise de fermeture du corps ou, si vous prenez en charge IE9 +, vous pouvez utiliser JS natif.

<script>alert('DOM Loaded!');</script>
</body>

<script>
document.addEventListener("DOMContentLoaded", function(event) { 
      // DOM has loaded ready to fire JS scripts
    });
</script>
0
mbokil