Où puis-je mettre les liens vers mes fichiers Javascript / jQuery dans mon fichier html?

J'ai récemment remarqué que certains (pas tous) de mes scripts javascript et jQuery ne fonctionneraient pas si je ne pose pas le lien pour les fichiers .js plus près du bas de la page au lieu de la zone principale où j'ai mis mes liens pour mon .css des dossiers.

D'après ce que je comprends, javascript peut aller dans les deux endroits et il est recommandé de ne pas être mis dans l'en-tête car il ralentit le processus de chargement de la page. Dans le même temps, si je l'ai mis dans l'étiquette du fichier html, il semble un peu désordonné et je me demandais quelle est la meilleure pratique pour mettre les fichiers .js dans un endroit propre. Devrais-je toujours le mettre en bas à droite avant l'étiquette du corps de fin? Comment les développeurs Web professionnels traitent-ils cela?

Si vos scripts ne fonctionnaient pas à moins que vous les mettiez en bas, vous avez probablement commencé à manipuler le DOM lorsque le DOM n'était pas encore prêt (ou vous avez peut-être utilisé document.write, mais je doute que ce soit le cas). Pour résoudre ce problème, vous devez commencer le traitement uniquement lorsque le DOM est prêt. Avec jQuery, vous aurez besoin de quelque chose comme:

$(function() { // DOM is ready here and you can safely manipulate it }); 

En ce qui concerne la façon dont le positionnement des scripts affecte les performances, je vous suggère de lire ces 3 articles du guru de la performance côté client:

Le chargement asynchrone et l' exécution retardée sont des sujets très chauds en ce moment. Ils vous permettent de définir de façon claire tout au <head> mais soyez très précis quant à la façon dont ils sont chargés et lorsqu'ils sont exécutés.

Meilleures pratiques pour accélérer votre site Web (mettre les scripts dans la partie inférieure)

JavaScript au bas / haut de la page Web?