Si tout comme moi, vous n'aviez jamais entendu parler du StringBuilder, vous comprendrez aisément pourquoi cette découverte a révolutionné ma vision du développement.
Cet outil de concaténation de String vous permet d'obtenir des performances incroyables pouvant laisser libre cours à votre imagination galopante !
C'est pourquoi, je vous propose ici un sous-ensemble de la Class StringBuilder. Cet objet JavaScript ne contient que le moteur de concaténation pour le moment mais je travaille sur la mise en place de la méthode Replace disponible dans la Class StringBuilder .NET au sein de ce dernier.
Pour concrètement entrer dans le sujet, nous allons commencer par un exemple qui sera beaucoup plus parlant qu'un long discours. Cet exemple nous permettra par la même occasion d'analyser si le StringBuilder est toujours la solution optimale et surtout quand est il réellement intéressant de l'utiliser.
Fonction utilisée :
Nous allons ici utiliser une fonction contenant une boucle for permettant de concaténer X fois la chaine AsP.PhP.Net.
var oStr = new StringBuilder();
fConcat = function( inNB, inTYPE ) { var i = 0, s = "", sOut = ""; for (i = 0; i < inNB; i++) { switch (inTYPE) { case 1 : // Traitement JavaScript s += "AsP.PhP.Net : " + (i + 1) + "<br>"; if (sOut == "") {sOut = "s";} break; case 2 : // Traitement StringBuilder oStr.add("AsP.PhP.Net : " + (i + 1) + "<br>"); if (sOut == "") {sOut = "oStr.build()";} break; } } return eval(sOut); }
Tableau comparatif :
Tests réalisés en local sous Windows 2000 avec Internet Explorer 6.0
- Length : Taille de la chaîne générée
Concrètement, nous pouvons voir que l'utilisation du StringBuilder nécessite tout de même un certain traitement pour réellement profiter de ses capacités.