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 :

Optimiser l'éxécution du JS


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 113
    Par défaut Optimiser l'éxécution du JS
    Bonjour !

    Actuellement en phase de mise en production d'un site très ambitieux au niveau des effets visuels, mes collègues et moi même rencontrons un problème bien ennuyeux.

    Le Javascript, sous la forme de fonctions jQuery, ralentit énormément le site. Si sur Firefox et Chrome cela reste acceptable, sur IE c'est tout simplement ignoble. A chaque chargement de page, il faut attendre de longues secondes pour pouvoir commencer à en parcourir le contenu.

    J'aimerais savoir comment vous optimisez le jQuery et le javascript en général sur vos pages web. Par exemple, est-ce particulièrement lent d'aller chercher tous les éléments contenant la classe nommée "myClass" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(".myClass").each(function(){...})
    Est-ce plus lent d'appliquer à un élément un évènement click par le biais de "bind", "live" ou "on" que de le faire directement à la création de l'élément avec un bon vieux onclick ?

    Avoir plusieurs setTimeOut cycliques mobilise beaucoup de ressources ?

    Plus globalement, n'hésitez pas e faire part de vos divers conseils.

    Merci par avance !
    Jeremy

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    cela peut également provenir des directives du serveur ...
    mise ne cache des fichiers externes js etc ...

    Sinon ... ben IE c'est [censuré]#¤@%?$£[/censuré]
    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
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 113
    Par défaut
    Certes, mais je suis bien obligé de faire avec, on peut pas sacrifier un tel pourcentage d'utilisateurs

    Quelles directives serveur indiquent de cacher le JS ?

    Remarque, on n'a que très peu de JS provenant de l'extérieur, presque tout est en local.

  4. #4
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Étonnant, même une animation gourmande bien codé en jQuery ne devrait pas trop ralentir la page.

    Citation Envoyé par JerryOne3 Voir le message
    Avoir plusieurs setTimeOut cycliques mobilise beaucoup de ressources ?
    Oui et non. Ca dépend des délais bien sûr, si vous lancé une animation toutes les 1 millisecondes, c'est sûr que ça va ramer. D'ailleurs pourquoi utiliser des settimeout, alors qu'en général jQuery gère très bien la cadence des animations et permet de les délayer avec la méthode "delay".

    Aussi vérifier que vous ne lancez pas plusieurs fois la même animation sur le même objet car si jQuery essaye d'appliquer 2 mouvements décalé au même objet, c'est sûr que ça va laguer aussi.

  5. #5
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    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 !

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 113
    Par défaut
    Merci pour le lien

    A priori il n'y a pas de problème de répétitions d'animations. Et quand je parle de cycles, ils sont tout de même plus longs que ça.

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Par défaut
    Citation Envoyé par JerryOne3
    Si sur Firefox et Chrome cela reste acceptable, sur IE c'est tout simplement ignoble.
    Citation Envoyé par JerryOne3
    je suis bien obligé de faire avec, on peut pas sacrifier un tel pourcentage d'utilisateurs
    Sur ce pourcentage d'utilisateurs, peut être qu'un grand nombre, accepteraient d'installer le plugin Google Chrome Frame c'est tres simple a mettre en place (cf la doc)
    pour les perfs cela semble identique a Chrome . par contre tous n'est pas encore implémenté ( WebGL ne fonctionne pas )

  8. #8
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    j'ai cru que ce post était un duplicata du précédent

    http://www.developpez.net/forums/d12.../optimiser-js/

    à 5 jours deux post avec le même problème sur JQuery
    A+JYT

  9. #9
    Membre émérite
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Par défaut
    A chaque chargement de page, il faut attendre de longues secondes pour pouvoir commencer à en parcourir le contenu.
    Un chargement asynchrone des scripts est-il envisageable ?

  10. #10
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 113
    Par défaut
    @p3ga5e : c'est malheureusement en dehors de nos possibilités.

    @sekaijin : merci, je vais parcourir ce post aussi !

    @dkmix : non, pas vraiment : les effets chargés sont nécessaires au bon fonctionnement des pages telles qu'elles sont construites actuellement.

  11. #11
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 113
    Par défaut
    Une question supplémentaire : comment évaluer le temps d’exécution / de mise en place sur la page d'une fonction donnée ? Je voudrais bien savoir si les modifications que je fais dessus sont efficaces et réduisent le temps de latence occasionné ou non...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Optimisation temps d'éxécution d'une requête
    Par majduuus dans le forum Développement
    Réponses: 11
    Dernier message: 03/06/2013, 11h50
  2. [PHP 5.3] Optimisation scripts à longue durée d'éxécution
    Par NHarald dans le forum Langage
    Réponses: 13
    Dernier message: 09/03/2011, 18h21
  3. [XL-2007] Optimiser un code VBA pour accélérer l'éxécution
    Par Rayanea dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/08/2010, 15h18
  4. optimisation de l'éxécution d'une appli ?
    Par sboober dans le forum Langage
    Réponses: 8
    Dernier message: 15/09/2006, 09h32
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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