Мы знаем, что в JS Concatenation является одной из самых низких операций.
Например:
Кода -копия выглядит следующим образом:
var text = "hello";
Текст+= "Мир!";
Ранние браузеры не оптимизировали эту операцию.
Поскольку строки неизменны, это означает создание промежуточных строк для хранения результатов соединения. Часто создавая и уничтожая струны на заднем плане, производительность ограничения чрезвычайно плохая.
Следовательно, оптимизация может быть выполнена с помощью объектов массива.
Например:
var buffer = [], i = 0; буфер [i ++] = "Привет"; // Добавление элементов через соответствующее значение индекса быстрее, чем буфер метода push [i ++] = "World!"; var text = buffer.join ("" ");В ранних браузерах промежуточные строки не были созданы и разрушены, и в случае большого количества строковых конкатенаций этот метод оказался намного быстрее, чем использование методов добавления.
В настоящее время оптимизация браузера строк изменила ситуацию строкового соединения. Safari, Opera, Chrome, Firefox и IE8 показывают лучшую производительность при использовании операторов с добавлением. Однако версии перед IE8 не были оптимизированы, поэтому метод массива все еще действителен. Это не означает, что когда строки подключены, нам нужно выполнить обнаружение браузера. При принятии решения о том, как подключить, это размер и количество строк.
Когда строка относительно небольшая (менее 20 символов), а количество соединений мало (менее 1000), все браузеры могут легко завершить соединения менее чем за 1 миллисекунду, используя оператор добавления. При увеличении количества или размера строк производительность в IE7 будет значительно снижена. Когда размер строки увеличивается, разница в производительности между операторами добавления и компонентами в Firefox станет меньше. По мере увеличения количества строк различия в производительности между операторами добавления и методами компонентов в сафари станут меньше. Аддитивные операторы в Chrome и Opera всегда поддерживали лидерство при изменении количества или размера струн.
Следовательно, из -за непоследовательной производительности каждого браузера, выбор технологий зависит от реальной ситуации и браузера, с которым вы сталкиваетесь.
В большинстве случаев операторы добавления являются предпочтительными; Технология массива стоит того, если пользователи в основном используют IE6 или 7 и имеют большие размеры струн или большие числа.
Вообще говоря, если это семантическая строка, не следует использовать массив, например:
«Здравствуйте, меня зовут» + имя;
Если строка является «повторением аналогичных ситуаций», рекомендуется использовать массив, например:
var array = []; for (i = 0; i <length; i ++) {array [i] = '<li>' + list [i] + '</li'>; } document.getElementById ('где -то'). innerHtml = array.join ('/n');Это все для сравнения производительности подключений JS String Array, я надеюсь, что это будет полезно для всех.