J'ai toujours eu l'habitude de faire mes fonctions de manipulation de classes CSS (tester, ajouter, supprimer, remplacer) avec array.split(), mais hier je suis tombé sur le script de Julien Royer qui fait la même chose avec des RegExp.
J'ai toujours pensé que les RegExp étaient lourdes en ressources et donc je les évite autant que possible.
J'ai donc créé une petite page de test pour voir qu'elle est la solution la plus adpatée entre nos deux approches, en créeant une page contenant 500 <div>, chacun ayant entre 1 et 5 classes, choisies au hasard.
Voic la page de test en question
La première ligne de bouton utilise les fonctions de Julien (celles-ci) alors que la seconde utilise mes fonctions (celles-ci)
Une fois un bouton cliqué, le temps d'execution apparait sur le bouton en question (en ms)
J'ai fait quelques tests, sous Firefox 2.0, IE6 et IE7 (WinXp) pour chacune des méthodes et ait fait une moyenne sur 5 essais.
Les résultats sont pas extremement concluants (d'un autre coté, mes tests sont pas extremement poussés non plus)
Pour simplifier, les deux méthodes se valent sous IE7.
Sous IE6, la mienne est légérement plus rapide pour addClass et removeClass, mais un brin plus lente pour replaceClass
Par contre sous Firefox, addClass est deux fois plus rapide avec la méthode de Julien, alors que ses méthodes removeClass et replaceClass sont un peu plus lentes.
Au final donc, rien de vraiment extraordinaire qui mériterait de préferer une méthode à une autre.
Si jamais vous avez des compléments d'infos, j'suis preneur.
Modifié par Tymlis (29 Aug 2007 - 09:52)
J'ai toujours pensé que les RegExp étaient lourdes en ressources et donc je les évite autant que possible.
J'ai donc créé une petite page de test pour voir qu'elle est la solution la plus adpatée entre nos deux approches, en créeant une page contenant 500 <div>, chacun ayant entre 1 et 5 classes, choisies au hasard.
Voic la page de test en question
La première ligne de bouton utilise les fonctions de Julien (celles-ci) alors que la seconde utilise mes fonctions (celles-ci)
Une fois un bouton cliqué, le temps d'execution apparait sur le bouton en question (en ms)
J'ai fait quelques tests, sous Firefox 2.0, IE6 et IE7 (WinXp) pour chacune des méthodes et ait fait une moyenne sur 5 essais.
Les résultats sont pas extremement concluants (d'un autre coté, mes tests sont pas extremement poussés non plus)
Pour simplifier, les deux méthodes se valent sous IE7.
Sous IE6, la mienne est légérement plus rapide pour addClass et removeClass, mais un brin plus lente pour replaceClass
Par contre sous Firefox, addClass est deux fois plus rapide avec la méthode de Julien, alors que ses méthodes removeClass et replaceClass sont un peu plus lentes.
Au final donc, rien de vraiment extraordinaire qui mériterait de préferer une méthode à une autre.
Si jamais vous avez des compléments d'infos, j'suis preneur.
Modifié par Tymlis (29 Aug 2007 - 09:52)