Contexte: Il est vrai que les frais généraux HTTP est plus important que l'analyse syntaxique JS et CSS, sans tenir compte de l'impact de l'analyse sur les performances du navigateur (même si vous avez moins d'un meg de JS) est une bonne façon de vous procurer en difficulté. YSlow, Fiddler, et Firebug ne sont pas les meilleurs outils pour surveiller la vitesse d'analyse.
À moins qu'ils n'aient été mis à jour très récemment, ils ne séparent pas le temps nécessaire pour récupérer JS sur HTTP ou charger à partir du cache et le temps passé à analyser la charge utile JS.
La vitesse d'analyse est un peu difficile à mesurer, mais nous avons poursuivi cette mesure un certain nombre de fois sur des projets sur lesquels j'ai travaillé et l'impact sur les pageloads était significatif même avec ~ 500k de JS. De toute évidence, les navigateurs les plus anciens en souffrent le plus ... espérons que Chrome, TraceMonkey et d'autres éléments de ce genre aident à résoudre cette situation.
Suggestion: En fonction du type de trafic que vous avez sur votre site, il peut être bien utile de votre temps pour partager votre charge utile JS donc quelques gros morceaux de JS qui ne seront jamais utilisés sur une des pages les plus populaires ne sont jamais envoyés au client. Bien sûr, cela signifie que lorsqu'un nouveau client atteint une page où ce JS est nécessaire, vous devez l'envoyer par le fil. Cependant, il se peut que, par exemple, 50% de votre JS ne soit jamais utilisé par 80% de vos utilisateurs en raison de vos habitudes de trafic. Si tel est le cas, vous devez certainement utiliser des charges JS compactes et plus petites uniquement sur les pages où le JS est nécessaire. Sinon, 80% de vos utilisateurs subiront des pénalités d'analyse JS inutiles sur chaque pageload.
Bottom Line: Il est difficile de trouver le bon équilibre de la mise en cache JS et plus petits, des charges utiles emballés, mais en fonction de votre modèle de trafic, il est certainement bien utile d'envisager une autre technique que fracassant tous vos JS dans chaque pageload.
Il est important de noter que IE a une limite supérieure arbitraire de demandes qu'il fera. Si vous avez trop de fichiers JS différents, après un certain point, IE ne chargera plus vos scripts. Cela a été mis en évidence dans un projet Drupal où la page chargerait à moitié les scripts si l'agrégation JS était désactivée, mais une fois que nous avons réactivé l'agrégation JS, cela a bien fonctionné. (JS agrégation est une fonctionnalité de Drupal qui va tirer tous vos JS pour une page dans un seul fichier pour réduire le nombre de demandes.) – Metagrapher
Ajout également, levik, votre suggestion de fractionnement des fichiers fonctionne parce que certains navigateurs vont demander et analyser les deux fichiers presque tous les autres navigateurs attendent que le premier soit analysé pour charger le second.Je me suis rendu compte que généralement moins de demandes sont mieux, avec un code plus concis et plus pertinent. – Metagrapher