IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Emplacement scripts et vitesse d'affichage page web


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 125
    Points : 51
    Points
    51
    Par défaut Emplacement scripts et vitesse d'affichage page web
    Salut tout le monde,

    Est ce que l'emplacement des scripts intervient dans la vitesse d'affichage d'une page web ?

    Si oui, quel est l'emplacement l'idéal ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 670
    Points
    66 670
    Billets dans le blog
    1
    Par défaut
    l'essentiel de la vitesse d'affichage est conditionné par le débit.

    il serait cependant possible, selon les puristes, de gagner quelques millionièmes de secondes en plaçant les script en fin de page avant la balise de fermeture body

    [edit] oups oui balise body et pas html ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    l'essentiel de la vitesse d'affichage est conditionné par le débit.

    il serait cependant possible, selon les puristes, de gagner quelques millionièmes de secondes en plaçant les script en fin de page avant la balise de fermeture html
    Les "puristes", comment tu y vas

    Il est conseillé de mettre les scripts en fin de body, juste avant le tag de fermeture </body>, pour deux raisons à ma connaissance :
    - les browsers ne prennent en charge qu'un nombre limité de téléchargements simultanés en parallèle. Mettre les scripts dans le HEAD peut bloquer peut-être le téléchargement en parallèle d'autres ressources jugées plus prioritaires, comme des CSS ou des images.
    - lorsque le navigateur lit un script, il est "bloqué" le temps d'interpréter et de compiler le script (à nuancer, certains browsers sont peut-être multi-threadés aujourd'hui, je n'en suis pas sûr). En plaçant les scripts tout à la fin, le contenu est déjà visible pendant ce délai très court, et l'utilisateur peut donc commencer à le consulter un peu plus tôt.

    Certes SpaceFrog a raison, ça casse pas trois pattes à un canard niveau performances. Mais quand le périphérique ou le réseau ne sont pas de bonne qualité, ça peut vraiment changer la donne, et l'utilisateur peut consulter le contenu de 10 millisecondes à 1 seconde plus tôt je dirais. Je pense que quelqu'un avec un vieux smartphone mono-coeur chez Free Mobile verra davantage la différence
    One Web to rule them all

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4
    Points : 9
    Points
    9
    Par défaut
    Je complète la réponse précédente en vous proposant de lire un article assez dense faisant un retour d’expérience sur le temps de chargement des pages, les difficultés, etc, en plaçant ces fameux scripts en bas de page :
    http://braincracking.org/2010/05/31/...-mais-comment/

    J'étais tombé dessus à l'époque ou je voulais comprendre pourquoi la légende voulait qu'on place nos scripts en bas, maintenant vous le saurez aussi

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    J'ai lu en diagonale l'article, mais il y a un truc qui m'a fait défriser :
    • taire les erreurs JS
    • la page se charge, les JS inline se lancent et plantent en silence
    • remettre le système d’erreur standard
    • inclure le fichier
    • re-exécuter tous les scripts inline

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.defaultOnError = window.onerror; window.onerror = function() {return true;};
    Ca serait pas particulièrement dégueulasse ça ?

    Si le problème est une question d'ordre d'exécution, il vaut largement mieux utiliser un outil de chargement asynchrone de scripts (alias script loader). Ces outils généralement très légers permettent de télécharger en parallèle les scripts tout en gardant le contrôle de l'ordre d'exécution. On peut citer :
    One Web to rule them all

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Est ce que l'emplacement des scripts intervient dans la vitesse d'affichage d'une page web ?
    Oui et non.

    Ca n'a aucun impact sur le chargement global de ta page.
    Comme il a déjà été mentionné, le chargement des scripts est un peu particulier : contrairement aux autres contenus dits remplacés (feuilles de style, images...) un script peut modifier le contenu du document (par exemple avec l'immonde document.write()...) de ce fait, le chargement d'un script bloque le rendu de la page. Néanmoins, quel que soit l'endroit où tu places le script, le chargement global de la page sera le même. La seule différence (mais elle peut quand même être de taille), c'est à quel moment ce blocage va intervenir. Si ton script est dans le <head>, ce sera avant tout début d'affichage de la page, si c'est juste avant le </body>, ce sera après l'affichage complet du DOM (mais pas forcément des éléments remplacés). Donc l'utilisateur pourra (encore faut-il avoir une quantité de scripts assez imposante) avoir l'impression d'un chargement plus rapide.
    N'oublie pas non plus que le positionnement du script a aussi un impact sur sa structure. Habituellement, on demande aux scripts d'attendre le chargement de la page (ou au moins du DOM) pour initialiser les fonctionnalités (typiquement avec window.onload) ce qui n'est plus utile si le script est en fin de page.
    Enfin, si ton script n'est pas sensé insérer du contenu dans le document pendant son chargement, tu peux très bien le charger de façon asynchrone à l'aide des attributs async et defer.

    Comprendre la balise script.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. [tele2-NetGear]Résoudre problème de lenteur à l'affichage pages web
    Par georgeduke dans le forum Dépannage et Assistance
    Réponses: 1
    Dernier message: 08/02/2008, 13h56
  2. probleme affichage page web
    Par Emcy dans le forum Réseau
    Réponses: 15
    Dernier message: 17/04/2007, 09h14
  3. [web] Problème affichage page web
    Par benji2642 dans le forum MATLAB
    Réponses: 2
    Dernier message: 12/04/2007, 02h00
  4. Problème affichage page web html ou htm
    Par metmac1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 08/03/2007, 21h15
  5. [Caractères japonais] Affichage page web
    Par rgomes dans le forum Langage
    Réponses: 3
    Dernier message: 02/07/2006, 19h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo