2010-03-17 2 views

Répondre

14

Utilisez +=

var s = 'begin'; 
s += 'ning'; 
+1

ha - aurait dû le deviner! – Haroldo

1

Oui: my_var += 'extra string';

1
+= 

Exemple:

my_var += "extra string"; 
5

Conseil de performance (Note — ce conseil est valable pour IE6, mais il ne vaut plus la peine de s'inquiéter en 2014)

Si vous écrivez du code Javascript pour construire une longue chaîne (disons, un assez gros bloc de HTML, ou un long paramètre liste pour une demande de paiement ajax), puis ne sont pas dans l'habitude de le faire:

var longString = ""; 
for (var i = 0; i < someBigNumber; ++i) { 
    if (i > 0) longString += "<br>" + whatever; 
    longString += someMoreStuff(); 
} 

Comme le longString obtient plus et plus, Internet Explorer gonflera plus en plus difficile à chaque itération de la boucle. Même lorsque someBigNumber n'est pas vraiment énorme, les performances de cette boucle peuvent être vraiment terribles.

Heureusement, il y a une alternative simple: utiliser un tableau:

var accumulator = []; 
for (var i = 0; i < someBigNumber; ++i) { 
    accumulator.push(someMoreStuff()); 
} 
var longString = accumulator.join("<br>" + whatever); 

Way, de façon plus rapide dans Internet Explorer que chaîne répétée ajoute.

+2

Mieux encore, Pointy, grand mannequin, fais comme ça avec un cadre! Les frameworks sont généralement très bien optimisés et feront généralement la plupart du temps d'une manière éprouvée, efficace et sûre. – Pointy

+0

Lol (15 caractères). – BalusC

+0

Bonne réponse, était sur le point d'écrire cela. – user187291

Questions connexes