Quelques optimisations en JS

Javascript/AJAX 3 Commentaires »

Cet article présente quelques astuces en Javascript pour optimiser vos algorithmes et la performance de vos scripts.

Au niveau du code

Précalculer le plus possible

Mise en “cache” dans des variables : par exemple l’accès à la propriété d’un objet enfouie sous plusieurs niveaux, ou un valeur utilisée dans la déclaration d’une boucle for.

// Pas bien
for (var n = 0; n < monObjet.maPropriete1.maPropriete2.valeur; n++) {
	// ...
}
 
// Bien
var len = monObjet.maPropriete1.maPropriete2.valeur;
 
for (var n = 0; n < len; n++) {
	// ...
}

Interdiction d’utiliser eval !

A l’instar de n’importe quel langage, la fonction eval est un gouffre à performances. L’éviter autant que possible. Il y a bien entendu des alternatives :

// Pas bien
eval("obj."+prop)
 
// Bien
obj[prop]

Concaténation de chaines

Utilisation d’un Array pour concaténer les chaines et liaison à l’aide de la méthode join(). Les développeurs de Microsoft le recommandent dans le doc en bas, à la manière d’un StringBuilder en .Net ou en Java :

var sb = new Array();
sb.push("
 
");
sb.push(monTexte);
sb.push(monTexte2);
sb.push("
 
");
 
var s = sb.join("");

Au niveau des fichiers

Minifier les Javascripts en production

But : optimiser le chargement du script pour l’interprétation (bande passante utilisée, temps d’interprétation par le moteur JS du navigateur). Il existe d’excellents outils pour effectuer cette tâche : YUICompressor, JSMinifier… Dans l’idéal, s’assurer que tout le JS est envoyé avec un seul appel HTTP.

Mettre les déclarations en bas de page

Le plus près possible de la fermeture de l’élément body (</body>). Cela permet d’exécuter le code à l’issue du chargement complet du HTML, évitant du coup un blocage en plein milieu du rendu de la page.

Bibliographie rapide

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in