Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ 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 08/02/2012, 16h19   #1
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 592
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 592
Points : 213
Points : 213
Par défaut toggleClass lent sur ie8

Bonjour

Sous firefox ce code surligne rapidement un tr, mais sous ie8 c'est lent et le surlignement prend du retard entre chaque ligne.

Seriez-vous pourquoi ?

Code :
1
2
3
4
 
$('#'+tab).on('mouseenter mouseleave', 'tbody tr', function(){
    $(this).toggleClass(classe);
});
le code est appelé dans ceci :
Code :
1
2
3
4
5
6
7
 
function chargerTableau(tab)
{
	$('#conteneurTab').load('infoTab.php #'+tab, function(){
               surligneTr(tab,'dessus');
        });
}
arthuro45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 10h01   #2
Membre confirmé
 
Inscription : décembre 2009
Messages : 249
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 249
Points : 219
Points : 219
Ba c'est souvent un probleme sous IE (généralement plus sous IE 6). Essaye peut etre avec les evenements mouseover/mouseout a la place de mouseenter/mouseleave, mais je ne suis pas sur que ce soit plus rapide.

Perso en entreprise j'étais passé directement par le CSS, ca allait bcp plus vite que le JavaScript :

Code :
1
2
3
4
5
6
7
8
 
table tbody tr td {
	background-color:#FFF;
}
 
table tbody tr:hover td {
	background-color:#8DBDD8;
}
Un truc comme ca te permet de changer facilement et plus rapidement (au moins pour IE) un tr lorsque la souris passe dessus.
ticroch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 10h17   #3
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 786
Points : 35 786
Chaque modification de style provoque un repaint ou un reflow.
Les tables HTML sont les éléments les plus lents à afficher pour le navigateur (spécialement pour IE) du fait, notamment, que leur structure "théorique" est rarement respectée et que les différentes dimensions sont souvent laissées libres : le navigateur doit alors tout calculer avant d'afficher.
Du coup, modifier un td au survol sur une grosse table, c'est assez peu optimisé...

Pour en savoir un peu plus : Reflows & Repaints: CSS Performance making your JavaScript slow? et plus spécialement Avoid tables for layout

Voir aussi l'extension pour Firebug Firebug Paint Events qui te donnera une idée de l'ampleur de la chose !
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 13h04   #4
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 592
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 592
Points : 213
Points : 213
Je ne sais pas encore comment je vais optimiser ça, mais je viens de tester mon tableau HTML sous ie8 avec ietester et c'est beaucoup plus fluide

J'ai pas fini de chercher...
arthuro45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 21h40   #5
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 592
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 592
Points : 213
Points : 213
Citation:
Perso en entreprise j'étais passé directement par le CSS, ca allait bcp plus vite que le JavaScript :
Effectivement j'ai gagné un peu en réactivé sur les lignes, ça devient tolèrable.

Citation:
et que les différentes dimensions sont souvent laissées libres : le navigateur doit alors tout calculer avant d'afficher.
Tu suggères de mettre des dimensions au td (width,height) ?

Il serait préférable de passer à autre chose que des Table pour les données tabulaires ?
arthuro45 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 21h12.


 
 
 
 
Partenaires

Hébergement Web