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 :

Slider javascript lent


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut Slider javascript lent
    Bonjour à tous,

    Je viens de modifier un de mes slider javascript et à l'issue des tests, je constate qu'il nettement plus lent sur firefox 6 que sur tous les autres navigateurs (ie9, safari4, chrome, Opéra).

    Avez-vous eu des retours concernant la getion des timers avec ff6?

    Sinon voici une partie du script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    //prépare le slide des éléments
    cswSlider.prototype.go = function(way)
    {
    	this.clearTimer('go');
     
    	var stop = 0;
     
    	this.goTo(this.elements, 'left', stop, 2, 0, this.current);
    } 
     
    //fait glisser un array d'éléments d'un point à un autre
    cswSlider.prototype.goTo = function(elements, direction, stop, incrementation, callback, index)
    {
    	var that = this;
    	if(!index) index = 0;
    	this.clearTimer(elements[0]);
    	var posElement = parseInt(eval("this.el(elements[index]).style."+direction));
    	if(posElement < stop) var increElement = "this.el(elements[i]).style."+direction+" = parseInt(this.el(elements[i]).style."+direction+") + "+incrementation+" + 'px'";;
    	if(posElement > stop) var increElement = "this.el(elements[i]).style."+direction+" = parseInt(this.el(elements[i]).style."+direction+") - "+incrementation+" + 'px'";
    	for(i = 0; i < elements.length; i++)
    	{
    		eval(increElement);
    	}
     
    	if(posElement == stop){ this.clearTimer(elements[0]); if(callback){ eval(callback); }}
    	else{ this.timer[elements[0]] = setTimeout(function(){ that.goTo(elements, direction, stop, incrementation, callback, index); }, this.speed); }
    }
     
    //clean le timer des slide
    cswSlider.prototype.clearTimer = function(index, all)
    {
    	if(this.timer[index] && !all)
    	{
    		clearTimeout(this.timer[index]);
    		this.timer[index] = false;
    	}
     
    	if(all)
    	{
    		for(i in this.timer)
    		{
    			clearTimeout(this.timer[i]);
    			this.timer[i] = false;
    		}
    	}
    }
     
    //retourne un element du dom par son id
    cswSlider.prototype.el = function(id)
    {
    	return document.getElementById(id);
    }
    Merci à tous pour votre aide!

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Je n'ai pas de réponse à ta question.
    Mais autant d'eval dans un seul extrait, faut quand même avoir l'estomac bien accroché
    Est-ce la cause des ralentissements sur FF ? ça m'étonnerait un peu a priori mais encore une fois sans certitude...

  3. #3
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut
    Effectivement je peux passer de 6 "eval" à 3...J'ai édité le script ci-dessus!

    Mais sinon il y a des conditions particulières d'utilisation pour les "eval"?
    J'avoue c'est la première fois que je m'en sert...

Discussions similaires

  1. Animation javascript lente
    Par aku84 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 25/03/2013, 22h40
  2. mettre un lien sur une image d'un slider javascript
    Par mateomania dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/05/2011, 10h43
  3. Javascript JqueryUI trop lent - une solution ?
    Par tchoumak dans le forum jQuery
    Réponses: 2
    Dernier message: 02/10/2009, 20h09
  4. Modification Javascript sur un slider blogger :)
    Par ThisIsInv dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 22/06/2009, 18h40
  5. Contrôle slider javascript
    Par naima2005 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/08/2008, 23h42

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