2010-03-17 2 views

ответ

14

Использование +=

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

ha - должно было догадаться, что! – Haroldo

5

Performance Tip (примечание — этот совет действителен для IE6, но об этом больше не стоит беспокоиться в 2014 году)

Если вы пишете код Javascript для создания длинной строки (скажем, довольно большого блока HTML или длинного параметра список для запроса Ajax), то не попасть в привычку делать это:

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

Как longString становится все длиннее и длиннее, Internet Explorer будет пыхтеть все труднее и труднее на каждой итерации цикла. Даже когда someBigNumber на самом деле не такой большой, производительность этого цикла может быть действительно ужасной.

К счастью, есть простой вариант: использовать массив:

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

путь, путь быстрее в Internet Explorer, чем повторяется строка присоединяет.

+2

Еще лучше, Pointy, вы большой манекен, делайте так, как с рамкой! Рамки, как правило, очень хорошо оптимизированы и, как правило, делают все, что угодно, хорошо проверенным, эффективным и безопасным способом. – Pointy

+0

Lol (15 символов). – BalusC

+0

Хороший ответ, собирался написать это. – user187291

Смежные вопросы