Je mets généralement tous les scripts JavaScript dans un fichier, par exemple scripts.js
(moins de requêtes HTTP, c'est mieux). Ainsi, certains scripts sont nécessaires pour certaines pages, d'autres non.
Pour cibler une page spécifique, j'utilise quelque chose comme :
if ($("body#share").length > 0) {
// Placez ici la logique concernant la page avec l'ID 'share'...
}
// Le fichier / script continue...
D'autres suggestions ou meilleures suggestions? Merci!
Clarification: Je ne cherchais pas à comparer les avantages et les inconvénients entre la consolidation de plusieurs fichiers JS en un seul gros fichier et le maintien de plusieurs fichiers JS séparés. La réponse à cela est sûrement 'dépend de la situation' (nous le savons). Ma question est, en supposant que toute ma logique JS est placée dans un seul grand fichier, comment faire en sorte qu'un (morceau de) script s'exécute seulement lorsque la page correspondante est chargée ? Une façon que j'utilisais était d'utiliser if ($('#id-of-target-element')) { /* exécuter le script */}
; y a-t-il une meilleure façon?
2 votes
Utilisez-vous un langage côté serveur comme PHP ? Vous pourriez demander au serveur de vérifier la page actuelle et de renvoyer uniquement le code approprié pour cette page.
0 votes
Si tout le code est téléchargé, de telles comparaisons ne devraient pas être nécessaires. En supposant que je lis correctement votre question.
0 votes
@JeffreySweeney il doit probablement vérifier sur quelle page il agira avec une fonction spécifique... mais pour moi, c'est une approche assez bizarre, j'espère que je ne semble pas trop rigide
4 votes
Si vous avez juste un seul fichier .js pour tout votre code, la plupart des navigateurs ne le mettraient-ils pas en cache dès le premier chargement et n'auraient pas à le télécharger à nouveau pour vos autres pages?
1 votes
@DorinDuminica: Tu as raison; je dois vérifier quelle fonction exécuter en fonction de la page sur laquelle je me trouve.
0 votes
En passant, à mesure qu'un site web se développe, l'utilisation de classes sur pour indiquer des fonctionnalités et l'utilisation de $("html").hasClass() est probablement une meilleure solution à long terme que l'utilisation d'identifiants de corps.
0 votes
L'approche de Paul Irish vaut vraiment le détour - Je la recommanderais n'importe quel jour. Consultez ma réponse pour plus d'informations.
0 votes
@MPD Juste curieux, pourquoi l'utilisation de classes sur html est-elle une meilleure solution à long terme comme appliquée à cette question que l'utilisation d'IDs du corps?
0 votes
@moey Je pense que ta méthode est plus simple et plus pratique que la réponse acceptée.