Sabemos que en JS, la concatenación de cadenas es una de las operaciones de bajo rendimiento.
Por ejemplo:
La copia del código es la siguiente:
var text = "hola";
texto+= "¡Mundo!";
Los primeros navegadores no optimizaron esta operación.
Dado que las cadenas son inmutables, esto significa crear cadenas intermedias para almacenar los resultados de la conexión. Con frecuencia creando y destruyendo cuerdas en el fondo, el rendimiento de la restricción es extremadamente pobre.
Por lo tanto, la optimización se puede realizar utilizando objetos de matriz.
Por ejemplo:
var buffer = [], i = 0; buffer [i ++] = "hola"; // Agregar elementos a través del valor del índice correspondiente es más rápido que el búfer del método PUSH [i ++] = "World!"; var text = buffer.Join ("");En los primeros navegadores, las cadenas intermedias no fueron creadas y destruidas, y en el caso de una gran cantidad de concatenaciones de cuerdas, esta técnica ha demostrado mucho más rápido que usar métodos de adición.
Hoy en día, la optimización del navegador de cadenas ha cambiado la situación de la conexión de cadena. Safari, Opera, Chrome, Firefox e IE8 muestran un mejor rendimiento al usar operadores adicionales. Sin embargo, las versiones antes de IE8 no se han optimizado, por lo que el método de matriz sigue siendo válido. Esto no significa que cuando las cadenas estén conectadas, necesitamos realizar la detección del navegador. Lo que debe considerar al decidir cómo conectarse es el tamaño y el número de cadenas.
Cuando la cadena es relativamente pequeña (menos de 20 caracteres) y el número de conexiones es pequeña (menos de 1000), todos los navegadores pueden completar fácilmente las conexiones en menos de 1 milisegundo utilizando el operador de adición. Al aumentar el número o el tamaño de las cadenas, el rendimiento en IE7 se reducirá significativamente. Cuando el tamaño de la cadena aumenta, la diferencia de rendimiento entre los operadores de adición y las técnicas de componentes en Firefox se volverá más pequeña. A medida que aumenta el número de cadenas, las diferencias de rendimiento entre los operadores de suma y las técnicas de componentes en Safari se volverán más pequeñas. Los operadores aditivos en Chrome y Opera siempre han mantenido una ventaja al cambiar el número o el tamaño de las cadenas.
Por lo tanto, debido al rendimiento inconsistente de cada navegador, la selección de tecnología depende de la situación real y del navegador que enfrenta.
En la mayoría de los casos, se prefieren los operadores de adición; La tecnología de matriz vale la pena si los usuarios usan principalmente IE6 o 7 y tienen grandes tamaños de cadena o grandes números.
En términos generales, si se trata de una cadena semántica, la matriz no debe usarse, como:
'Hola, mi nombre es' + nombre;
Si la cadena es una "repetición de situaciones similares", se recomienda usar una matriz, como:
var array = []; para (i = 0; i <longitud; i ++) {array [i] = '<li>' + list [i] + '</li'>; } document.getElementById ('en algún lugar'). innerhtml = array.join ('/n');Eso es todo para la comparación de rendimiento de JS String Array Connections, espero que sea útil para todos.