Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/09/2011, 21h06   #1
Membre actif
 
Avatar de xess91
 
Homme
Inscription : octobre 2008
Messages : 407
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 407
Points : 160
Points : 160
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 :
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!
xess91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 23h55   #2
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 574
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 574
Points : 4 077
Points : 4 077
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...
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 22h35   #3
Membre actif
 
Avatar de xess91
 
Homme
Inscription : octobre 2008
Messages : 407
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 407
Points : 160
Points : 160
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...
xess91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h38.


 
 
 
 
Partenaires

Hébergement Web