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 :

Compression de Javascript, bande passante


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Compression de Javascript, bande passante
    Bonjour bonjour !

    Je vais bientôt sortir un prochain site web, mais j'ai quelques problèmes en ce qui concerne la poid Javascript de la page !

    J'utilise 2 gros frameworks, soit script aculous et prototype, et quelques autres petites qui apportes des petites fonctions bien utile, au total c'est quand même 353 KO de javascript à télécharger par le navigateur.

    Bien-sûre, le javascript compresser à l'aide des outils disponible diminue fortement ce chiffre mais cela apporte un très gros désavantage, en effet on réussi à sauver de la bande passante en compressant le javascript, mais c'est du temps de perdu concernant l'exécution et l'affichage de la page !

    En effet, lorsque le javascript est compressé, une fonction eval() est utilisé et empêche l'exécution et l'affichage de la page tant que le javascript n'est pas totalement téléchargé du côté client.

    Alors la je suis dans la mer** !

    Si je compresses le javascript, je sauve de la bande passante mais la page en moyenne de 5 à 8 secondes environ pour s'afficher, bien-sûre seulement quand la page n'est pas en cache dans le navigateur, dans le cas contraire 1 à 2 secondes suffisent.

    J'ai entendu parler de la compression GZIP, mais qu'un 15% de la population de supportait pas cette technique ...

    Alors je suis dans une impasse !

    Je suis à la recherche de solution ou de conseils, si vous seriez prêt à m'offrir de vôtre je serais content !

    Merci d'avance,
    Coolfarmer

  2. #2
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Citation Envoyé par coolfarmer Voir le message

    J'utilise 2 gros frameworks, soit script aculous et prototype, et quelques autres petites qui apportes des petites fonctions bien utile, au total c'est quand même 353 KO de javascript à télécharger par le navigateur.
    Tu as besoin de tout scriptaculous ? tu as vu que tu pouvais limiter les scripts embarqués (scriptaculous.js?load=effects)


    Citation Envoyé par coolfarmer Voir le message
    En effet, lorsque le javascript est compressé, une fonction eval() est utilisé et empêche l'exécution et l'affichage de la page tant que le javascript n'est pas totalement téléchargé du côté client.
    Ca je ne comprend pas ; la compression javascript ne consiste pas simplement à enlever les commentaires, les espaces inutiles et renommer les variables privées (et donc non exposées aux appels) ?

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par gwyohm Voir le message
    Ca je ne comprend pas ; la compression javascript ne consiste pas simplement à enlever les commentaires, les espaces inutiles et renommer les variables privées (et donc non exposées aux appels) ?
    +1

    @coolfarmer > As-tu essayé plusieurs compresseurs différents pour comparer ?

    Si le tien implique l'utilisation d'eval(), c'est très mauvaise signe ....
    (normalement, il ne doit y avoir aucun impact sur l'utilisation du script)

    A+

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    C'est lourd certes mais il ne sera chargé que la première fois puis ensuite en cache non?

  5. #5
    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
    En effet, lorsque le javascript est compressé, une fonction eval() est utilisé et empêche l'exécution et l'affichage de la page tant que le javascript n'est pas totalement téléchargé du côté client.
    Ca n'a rien à voir avec la compression, JavaScript est toujours chargé en mode synchrone, notamment pour garantir à quel endroit seront exécutés les morceaux de code transformant la page lors de son chargement (via document.write par exemple).

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par gwyohm Voir le message
    Tu as besoin de tout scriptaculous ? tu as vu que tu pouvais limiter les scripts embarqués (scriptaculous.js?load=effects)

    Ca je ne comprend pas ; la compression javascript ne consiste pas simplement à enlever les commentaires, les espaces inutiles et renommer les variables privées (et donc non exposées aux appels) ?
    Est-ce que la limite des scripts aculous fonctionne avec le duo Prototype + ScriptAculous dans le même fichier ?

    Sinon pour la compression, oui j'étais bien conscient que cela n'était pas seulement pour enlever les commentaires et tout le blabla du script.

    Citation Envoyé par E.Bzz Voir le message
    Bonjour,+1

    @coolfarmer > As-tu essayé plusieurs compresseurs différents pour comparer ?

    Si le tien implique l'utilisation d'eval(), c'est très mauvaise signe ....
    (normalement, il ne doit y avoir aucun impact sur l'utilisation du script)
    Oui, j'ai essayé plusieurs compressions, j'ai suivi les marches à suivre sur google et fais plusieurs recherches pour déterminée le meilleur et ceux à ne pas utiliser.

    C'est bizarre car dans la plupart la fonctionne eval est bien présente, et j'avais lu quelques part sur google que la fonction eval utilise un temps de traitement supplémentaire qui pendant ce temps bloque le rendu et le téléchargement de la page.

    Mais aurais-tu un compresseur à me conseiller en particulier ?

    Citation Envoyé par madevilts Voir le message
    C'est lourd certes mais il ne sera chargé que la première fois puis ensuite en cache non?
    Oui bien-sûre, mais cela ne fait pas très professionnelle ... et je peux perdre beaucoup de visiteur surtout ceux qui n'attende que 3 secondes et si jamais aucun résultat est apparu il quitte la page car ils pensent qu'elle ne fonctionnera pas ...

    Pour l'instant je n'ai rien modifier, le JS est encore compressé, est-ce vous tous vous pouvez tester le temps d'affichage de la page ?

    --> www.pharaoh.fr (c'est un bêta donc vous n'avez accès qu'à l'accueil, mais cela est suffisant pour me dire combien de temps la page prend chez vous pour s'afficher)

    Je suis curieux de savoir combien sa prend de temps chez vous..

  7. #7
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Le réseau n'est pas excellent, je trouve le temps de chargement largement acceptable.

    Pour en revenir à la compression de flux JS et plus généralement aux performances, je te recommande le livre "JavaScript Performance Rocks!" de Amy Hoy & Thomas Fuchs (Thomas Fuchs est un des concepteurs des frameworks)

    extrait du livre :
    One of the most common questions the Prototype team receives is
    How can I minify Prototype?
    The answer is:
    For the love of god, don’t!

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Points : 330
    Points
    330
    Par défaut
    Citation Envoyé par gwyohm Voir le message
    ...compression de flux JS et plus généralement aux performances, je te recommande le livre "JavaScript Performance Rocks!" de Amy Hoy & Thomas Fuchs (Thomas Fuchs est un des concepteurs des frameworks)

    extrait du livre :
    Citation:
    One of the most common questions the Prototype team receives is
    How can I minify Prototype?
    The answer is:
    For the love of god, don’t!
    Je n'en reviens pas de lire un truc pareil

    J'espère que le reste du livre n'est pas fait de conseils en prières pour obtenir de meilleures performances.

    ...

    Pour ma part, les temps de chargement m'ont paru convenable. Même meilleur que sur certains gros site. Pas de quoi s'alarmer.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Points : 491
    Points
    491
    Par défaut
    sinon y'a Google AJAX Libraries API.

    http://code.google.com/apis/ajaxlibs/

    Ce service permet d'aller chercher les fichier js directement sur les serveurs de google, donc toujours à la même adresse.Ca permet de mieux gérer la cache du navigateur en téléchargeant qu'un prototype par exemple pour tout les sites qui l'utilise.

    Les scripts sont compresser aussi ...

  10. #10
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    LE chargement de ta page est en effet un peu long mais pas rédibitoire.
    En revanche en parcourant la sources :

    Utilisation de xajax , prototype , scriptaculous
    => Qu est ce que prototype ne fait pas que tu sois obliger d'utiliser xajax ?

    Sur ta home tu charge une tripotée de script (lightview , prototype, datepicker ...)
    => je n'en vois aucun utilisé.

    Les framework JS sont très pratique , mais pèse lourd en effet. Tu dois donc être prudent sur tes insertions.

    - Rien ne sert d'inclure des script qui ne sont pas utiliser
    - Rien ne sert d'inclure 2 frameworks alors que tout est faisable avec un seul
    - Si ta home se charge vite , c'est beaucoup moins problématique que certaines autres pages soient plus longue à charger (enfin c'est mon avis)

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Merci pour tous vos commentaires c'est très apprécié.

    En fait j'utilise Xajax car je n'ai pas eu le temps de me prêter à l'ajax pure, je devais terminée ce projet le plus rapidement possible pour des raisons personnels. Je le trouvais beaucoup plus simple et beaucoup plus organisé que d'utiliser prototype pour cela.

    Après, pour les scripts lightview, date picker, c'est normal que tu n'en vois pas l'utilisation vu que vous avez seulement accès à la page d'accueil, le reste du site reste inaccessible jusqu'à Début Décembre 2009.

    Sinon merci encore pour tous vos conseils, je vérifier maintenant ce que je peux faire, et aussi merci pour les tests de temps de chargement, finalement il est vrai que c'est plutôt convenable comparé à d'autres gros sites.

Discussions similaires

  1. Serveur dedié et bande passante ?
    Par ShinJava dans le forum Hébergement
    Réponses: 9
    Dernier message: 03/06/2005, 10h29
  2. [Stratégie] Limiter la bande passante
    Par Neuromancer dans le forum Développement
    Réponses: 7
    Dernier message: 17/01/2005, 15h29
  3. Appication Client/serveur : Limiter la bande passante ?
    Par souch dans le forum Web & réseau
    Réponses: 8
    Dernier message: 25/07/2004, 14h53
  4. Limiter la bande passante
    Par naili dans le forum Réseau
    Réponses: 3
    Dernier message: 15/01/2004, 08h21
  5. [Bande passante]
    Par Alexr dans le forum Développement
    Réponses: 7
    Dernier message: 12/09/2003, 14h36

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