Où mettez-vous votre javascript?
Ne vous localiser votre javascript de la page, ou avoir un master "application.js" ou similaire?
Si c'est le deuxième cas, quelle est la meilleure pratique pour s'assurer que votre .js n'est pas en cours d'exécution sur le mal de pages?
EDIT: en javascript, je veux dire javascript personnalisé vous écrire en tant que développeur, pas de bibliothèques js. Je ne peux pas imaginer que quelqu'un aurait un copier/coller de jQuery source dans leur page, mais on ne sait jamais.
source d'informationauteur Kyle West | 2008-11-18
Vous devez vous connecter pour publier un commentaire.
De mettre tous vos js dans un seul fichier peut aider à la performance (une seule demande de rapport à plusieurs). Et si vous êtes à l'aide d'un réseau de distribution de contenu comme Akamai il améliore votre taux d'accès au cache. Aussi, toujours jeter inline js en bas de la page (juste au-dessus de la balise body) parce que c'est exécutée de manière synchrone et peut retarder votre page de rendu.
Et oui, si l'un des fichiers js que vous utilisez est également hébergé chez google, assurez-vous d'utiliser celle-ci.
Voici mon "lignes directrices". Notez qu'aucune de ces sont formels, ils semblent juste comme la bonne chose à faire.
Tous partagé code JS vit dans la
SITE/javascripts
répertoire, mais il est chargé de "tiers"Pour l'ensemble du site des trucs (comme jquery, ou de mon site application.js), le site de mise en page (ce serait une page principale ASP.net) comprend le fichier. Le
script
tags aller en haut de la page.Il y a également "l'ensemble de la région" trucs (par exemple: code js qui n'est nécessaire que dans la section admin du site). Ces régions ont une mise en commun (qui peut alors inclure les balises de script) ou rendra une commune partielle, et que partielle peut inclure les balises de script)
Pour le moins partagé des trucs (dire que ma bibliothèque est uniquement nécessaire dans quelques endroits) puis j'ai mis un
script
balise dans ces pages HTML individuellement. Les balises de script aller en haut de la page.Pour des trucs qui sont seulement pertinents pour la seule page, je viens d'écrire du javascript en ligne. J'essaie de rester au plus près de la "cible" que possible. Par exemple, si j'ai le onclick js pour un bouton, le
script
balise aller en dessous du bouton.Pour les JS qui n'ont pas de cible (par exemple:
onload
événements) il va au bas de la page.Alors, comment obtenez quelque chose dans un localisée de la bibliothèque, ou à l'échelle du site de la bibliothèque?.
Une plainte commune sur un système comme cela, c'est que vous vous retrouvez avec 10 ou 20 petits fichiers JS, où 2 ou 3 gros fichiers JS donneront de meilleurs résultats à partir d'un réseau de point de vue.
Cependant, les deux rails et ASP.NET caractéristiques de la poignée de la combinaison et de la mise en cache de multiples fichiers JS dans un ou plusieurs des "super" js fichiers pour les situations de production.
Je vous recommande d'utiliser des fonctions comme ceci plutôt que de compromettre la qualité et la lisibilité du code source.
Yahoo! à la Performance Exceptionnelle de l'Équipe a une bonne performance des suggestions pour le JavaScript. Steve Souders utilisé pour être sur que l'équipe (il est maintenant à Google), et il a écrit quelques des outils intéressants qui peuvent vous aider à décider où mettre le JavaScript.
J'essaie d'éviter de mettre des fonctions javascript sur le rendu de la page. En général, j'ai une application.js (ou root.js) qui a les fonctionnalités génériques comme la manipulation de menu. Si une page a javascript spécifique de fonctionnalité, je vais créer un .fichier js pour gérer ce code et d'en imiter le dir de la structure sur la façon d'obtenir ce fichier (également en utilisant le même nom que le fichier de rendu).
En d'autres termes, si le rendu de la page est en public/dir1/dir2/mypage.html le fichier js serait dans public/js/dir1/dir2/mypage.js. J'ai trouvé ce style fonctionne bien pour moi, surtout quand on fait de template sur un site. - Je construire le moteur de template "autoload" mes ressources (css et js) en prenant le chemin de la requête et de faire quelques vérifications pour le css et le js équivalents dans les css et js répertoires à la racine.
Personnellement, j'essaie d'inclure plusieurs fichiers Javascript, triés par module (comme YUI n'). Mais de temps en temps, quand j'écris essentiellement un one-liner, je vais le mettre sur la page.
La meilleure pratique est probablement à mettre sur les serveurs de Google.
(Dépend de ce que tu veux dire par "votre" javascript mais je suppose 🙂
C'est quelque chose que j'ai été aux prises avec, trop. J'ai fini par utiliser mon back-end PHP script intelligente permet de construire une liste de fichiers JS basé sur le contenu demandé par l'utilisateur.
Par l'organisation de mes fichiers JS dans un référentiel qui contient plusieurs fichiers, organisé par le but qu'il s'agisse d'un usage général, porté une seule page, une seule section, etc) je peux utiliser la chaîne des événements qui s'appuie à la page sur le back-end pour choisir JS, les fichiers inclus sur la base des besoins (voir l'exemple ci-dessous).
C'est après l'exécution de mon application web sans donner cet aspect du code assez pensé. Maintenant, je dois aussi ajouter que le javascript que j'utilise améliore mais ne forme pas le fond de mon site. Si vous utilisez quelque chose comme SproutCore ou Ext j'imagine que la solution serait un peu différent.
Voici un exemple pour un PHP site web:
Si votre site est divisé en sections, et l'une de ces sections est calendrier. L'utilisateur accède à "l'index.phhp?module=calendrier&action=consulter". Si le code PHP est la classe de base de l'algorithme de routage instancie la CalendarModule classe qui est basée sur la "Module" et a une méthode virtuelle 'getJavascript'. Ce sera le retour de ces classes javascript sont requis pour effectuer l'action " vue "sur le" calendrier " du module. Il peut également prendre en compte d'autres exigences particulières et retour js fichiers pour ceux aussi bien. Le code de rendu peut vérifier qu'il n'existe pas de doublons de fichiers js lorsque le javascript inclure la liste est construit pour la page finale. Ainsi, le getJavascript méthode retourne un tableau comme ceci
Noter que ce, ou une certaine forme de ceci, n'est pas une idée nouvelle. Mais il m'a fallu un peu de temps pour penser qu'il est important d'aller à l'ennui.
Si c'est seulement quelques centaines d'octets ou moins, et ne doit pas être utilisée n'importe où ailleurs, je serais probablement inline. La surcharge du réseau pour une autre requête http sera probablement l'emportent sur les gains de performances que vous obtenez par le tirant hors de la page.
Si elle doit être utilisée que dans de rares endroits, je voudrais mettre de la fonction(s) dans un fichier externe, et de l'appeler à partir d'un script en ligne en tant que de besoin.
Si vous utilisez un iphone, essayez de garder tout ce que vous voulez mise en cache sous 25k.
Pas de règles strictes vraiment, chaque approche a ses avantages et inconvénients, vous recommandons fortement de consulter les articles qui peuvent être trouvés sur yahoo section de développeur, de sorte que vous pouvez prendre des décisions éclairées sur une base de cas par cas.