web-dev-qa-db-fra.com

Pourquoi de nombreux sites Web ont-ils tant d’inclusions javascript?

Je remarque que c'est principalement le cas pour les pages plutôt sophistiquées. Cependant, pourquoi les développeurs ne combinent-ils pas simplement les fichiers JS et ne les condensent-ils pas tous ensemble? N'est-ce pas une méthode plus efficace, en termes de demandes? Je ne sais pas si c'est le cas, mais cela semblerait être le cas.

4
whamsicore

Comme on l'a déjà noté, en matière d'efficacité, vous avez deux problèmes.

  • Efficacité dans le processus de développement
  • Efficacité dans la livraison du site à l'utilisateur final

On pourrait peut-être en discuter, mais je pense qu'il est assez évident que la livraison est une priorité plus haute. Cependant, lorsqu'il s'agit d'inclure des scripts et de gérer les changements sur le site, il est très pénible d'avoir un seul "script divin". La modularité est le roi de la maintenabilité à mon humble avis.

Une solution, comme celle mentionnée par Ewan à propos de Drupal, consiste à utiliser votre langage côté serveur pour "compiler" dynamiquement un fichier JS ou deux en remettant tout le bazar à chaque fois que le code change. En fonction de la manière dont vous y parvenez, il est possible d’utiliser plusieurs sources au cours du développement et un seul ou un petit nombre en production.

Il y a aussi quelques autres questions pratiques à considérer:

  • Vous pouvez décharger une partie de votre bande passante pour des scripts hébergés par des services tels que API des bibliothèques Google ou l'interface utilisateur de Yahoo . De plus en plus d'utilisateurs ont déjà sous la main ces fichiers provenant d'autres sites et, si rien d'autre ne vous est demandé, le chargement de votre site à partir de connexions plus nombreuses accélérera la diffusion.
  • Il existe des cas où vous n'avez pas besoin de la même fonctionnalité sur chaque page et que vous souhaitez facilement omettre certains scripts tout en conservant ceux qui sont pertinents pour la page en cours.
  • De temps en temps, vous souhaiterez peut-être charger des scripts individuels après le temps de chargement en utilisant AJAX et ainsi de suite en fonction du contexte de navigation de l'utilisateur.
3
Garet Claborn

Il est plus facile de développer un site si les scripts sont séparés, mais généralement préférable de les combiner pour la livraison, tant qu'ils ne vont pas interagir les uns avec les autres.

La réduction du nombre de demandes accélère généralement le chargement de la page. En outre, un script combiné peut généralement être compressé à une taille inférieure à celle de chaque fichier.

La principale raison pour laquelle les fichiers ne sont pas combinés est probablement la paresse, mais il n'est pas trop difficile d'écrire un script pour le faire automatiquement. Certains systèmes de gestion de contenu, tels que Drupal, ont la possibilité d’envoyer tous les JavaScirpt dans un seul fichier.

3
Ewan Heming

C'est plus facile de ne pas. Vous prenez un peu de jQuery ici et un autre script utile à partir de là et n'incluez que les deux, et ainsi de suite. Si vous ne les combinez pas, la mise à niveau d'un bit particulier, comme votre bibliothèque jQuery, sera également facilitée.

De même, si vous utilisez un type de CMS qui utilise beaucoup de scripts, vous pouvez le configurer avec autant de scripts, à moins que vous ne souhaitiez le modifier et éventuellement le casser.

En parlant de jQuery, c'est une bonne idée d'utiliser le réseau de diffusion de contenu de Google http://code.google.com/apis/libraries/devguide.html#jquery . Cependant, cela signifie que si vous avez un autre script, vous utilisez plusieurs scripts à nouveau.

1
paulmorriss