Javascript bloquant le téléchargement de contenu sur votre site Web pendant la page

StackOverflow https://stackoverflow.com/questions/658599

  •  20-08-2019
  •  | 
  •  

Question

Était-ce utile?

La solution

La meilleure façon d'inclure JavaScript sur votre site Web est d'inclure le moins de fichiers possible à la fin de la page *, une fois que tous les annotations et autres éléments ont été chargés. Cette façon de procéder présente également l’avantage supplémentaire d’encourager une & Quot; amélioration progressive < !> quot; modèle de développement.

* Yahoo consacre énormément d’argent à la recherche et à des collaborateurs dévoués (notamment le brillant Steve Souders) qui publient leurs conclusions en ligne et dans formulaire de livre .

Autres conseils

Cela ne semble pas être une solution universelle, alors je recourt souvent à cet article célèbre pour m'aider à répondre à des questions comme celle-ci:

http://developer.yahoo.com/performance/rules.html

Il a été mentionné dans l'un des podcasts, mais si vous hébergez le javascript sur un domaine distinct, voire un sous-domaine, le navigateur peut ouvrir davantage de connexions et télécharger à la fois le js et le reste de la page. en même temps. C'est pourquoi beaucoup de gens choisissent de créer un lien vers l'instance de jQuery de Google, plutôt que la leur. Cet exemple présente également des avantages de cachine, mais le principe de base est le même.

En résumé, l'article dit d'attacher <script> des nœuds de manière dynamique dans DOM afin de réaliser des téléchargements parallèles de fichiers de script. Cela fonctionne et n’a rien de nouveau.

Toutefois, le plus gros inconvénient de la méthode n’est pas mentionné: bien que les scripts soient téléchargés en parallèle, leur ordre de exécution n’est pas déterministe. IE les exécute dans l'ordre de fin du téléchargement, alors que Firefox les exécute dans l'ordre d'apparition dans le DOM.

C'est un problème. Par exemple, supposons que les scripts A et B soient ajoutés à l'aide de cette technique. Maintenant, imaginez que le script A est jQuery et que le script B le fasse:

$(document).ready(function(){...})

Dans IE, vous êtes vexé si, pour une raison quelconque (trafic réseau, cache cache par exemple), le script B termine le téléchargement avant le script A, car il sera exécuté avant le chargement de jQuery.

Voir cet article. pour une meilleure explication.

La réponse de Rex M est la suivante: chemin à parcourir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top