Nous savons que dans JS, la concaténation des cordes est l'une des opérations les moins performantes.
Par exemple:
La copie de code est la suivante:
var text = "bonjour";
Texte + = "Monde!";
Les premiers navigateurs n'ont pas optimisé cette opération.
Étant donné que les chaînes sont immuables, cela signifie créer des chaînes intermédiaires pour stocker les résultats de la connexion. Création et détruire fréquemment des cordes en arrière-plan, les performances de la contrainte sont extrêmement médiocres.
Par conséquent, l'optimisation peut être effectuée à l'aide d'objets Array.
Par exemple:
var tampon = [], i = 0; tampon [i ++] = "Bonjour"; // L'ajout d'éléments via la valeur d'index correspondante est plus rapide que le tampon de méthode push [i ++] = "world!"; var text = buffer.join ("");Dans les premiers navigateurs, les chaînes intermédiaires n'ont pas été créées et détruites, et dans le cas d'un grand nombre de concaténations de cordes, cette technique s'est avérée beaucoup plus rapide que d'utiliser des méthodes d'addition.
De nos jours, l'optimisation du navigateur des chaînes a changé la situation de connexion à la chaîne. Safari, Opera, Chrome, Firefox et IE8 montrent tous de meilleures performances lors de l'utilisation d'opérateurs d'addition. Cependant, les versions avant IE8 n'ont pas été optimisées, donc la méthode du tableau est toujours valide. Cela ne signifie pas que lorsque les chaînes sont connectées, nous devons effectuer une détection du navigateur. Ce que vous devez considérer lorsque vous décidez comment vous connecter, c'est la taille et le nombre de chaînes.
Lorsque la chaîne est relativement petite (moins de 20 caractères) et que le nombre de connexions est faible (moins de 1000), tous les navigateurs peuvent facilement terminer les connexions en moins de 1 milliseconde à l'aide de l'opérateur d'addition. Lors de l'augmentation du nombre ou de la taille des chaînes, les performances dans IE7 seront considérablement réduites. Lorsque la taille de la chaîne augmente, la différence de performance entre les opérateurs d'addition et les techniques de composants dans Firefox deviendra plus petite. À mesure que le nombre de chaînes augmente, les différences de performance entre les opérateurs d'addition et les techniques de composants de Safari deviendront plus petites. Les opérateurs additifs de Chrome et d'Opéra ont toujours maintenu une avance lors de la modification du nombre ou de la taille des chaînes.
Par conséquent, en raison des performances incohérentes de chaque navigateur, la sélection de la technologie dépend de la situation réelle et du navigateur auquel vous êtes confronté.
Dans la plupart des cas, les opérateurs d'addition sont préférés; La technologie Array en vaut la peine si les utilisateurs utilisent principalement IE6 ou 7 et ont de grandes tailles de chaîne ou de grands nombres.
D'une manière générale, s'il s'agit d'une chaîne sémantique, le tableau ne doit pas être utilisé, comme:
«Bonjour, mon nom est» + nom;
Si la chaîne est une "répétition de situations similaires", il est recommandé d'utiliser un tableau, tel que:
var array = []; pour (i = 0; i <longueur; i ++) {array [i] = '<li>' + list [i] + '</li'>; } document.getElementById ('Womeke'). innerHtml = array.join ('/ n');C'est tout pour la comparaison des performances des connexions JS String Array, j'espère que ce sera utile à tout le monde.