Sabemos que no JS, a concatenação de string é uma das operações com menor desempenho.
Por exemplo:
A cópia do código é a seguinte:
var text = "hello";
texto+= "mundo!";
Os navegadores iniciais não otimizaram esta operação.
Como as cordas são imutáveis, isso significa criar strings intermediários para armazenar os resultados da conexão. Freqüentemente criando e destruindo cordas em segundo plano, o desempenho da restrição é extremamente ruim.
Portanto, a otimização pode ser executada usando objetos de matriz.
Por exemplo:
var buffer = [], i = 0; buffer [i ++] = "hello"; // Adicionando elementos através do valor do índice correspondente é mais rápido que o buffer do método push [i ++] = "mundo!"; var text = buffer.Join ("");Nos navegadores iniciais, as cadeias intermediárias não foram criadas e destruídas e, no caso de um grande número de concatenações de string, essa técnica se mostrou muito mais rápida do que usar métodos de adição.
Atualmente, a otimização do navegador de strings mudou a situação da conexão de string. Safari, Opera, Chrome, Firefox e IE8 mostram melhor desempenho ao usar operadores de adição. No entanto, as versões antes do IE8 não foram otimizadas, portanto o método da matriz ainda é válido. Isso não significa que, quando as strings estão conectadas, precisamos executar a detecção do navegador. O que você precisa considerar ao decidir como conectar é o tamanho e o número de strings.
Quando a string é relativamente pequena (menos de 20 caracteres) e o número de conexões é pequeno (menor que 1000), todos os navegadores podem facilmente concluir conexões em menos de 1 milissegundo usando o operador de adição. Ao aumentar o número ou tamanho das cordas, o desempenho no IE7 será significativamente reduzido. Quando o tamanho da corda aumenta, a diferença de desempenho entre os operadores de adição e as técnicas de componentes no Firefox se tornará menor. À medida que o número de cordas aumenta, as diferenças de desempenho entre os operadores de adição e as técnicas de componentes no Safari se tornarão menores. Os operadores aditivos no Chrome e na Opera sempre mantiveram uma vantagem ao alterar o número ou o tamanho das strings.
Portanto, devido ao desempenho inconsistente de cada navegador, a seleção de tecnologia depende da situação real e do navegador que você está enfrentando.
Na maioria dos casos, os operadores de adição são preferidos; A tecnologia Array vale a pena se os usuários usarem principalmente o IE6 ou 7 e tiverem tamanhos de cordas grandes ou grandes números.
De um modo geral, se for uma corda semântica, a matriz não deve ser usada, como:
'Olá, meu nome é' + nome;
Se a string for uma "repetição de situações semelhantes", é recomendável usar a matriz, como:
var Array = []; for (i = 0; i <comprimento; i ++) {array [i] = '<li>' + list [i] + '</li'>; } document.getElementById ('Somewhere'). innerhtml = array.join ('/n');Isso é tudo para a comparação de desempenho das conexões JS String Array, espero que seja útil para todos.