ホームページ  >  記事  >  ウェブフロントエンド  >  js 文字列配列 splicing_javascript スキルのパフォーマンスの問題について議論する

js 文字列配列 splicing_javascript スキルのパフォーマンスの問題について議論する

WBOY
WBOYオリジナル
2016-05-16 16:34:191301ブラウズ

js では、文字列の連結が最もパフォーマンスの低い操作の 1 つであることがわかっています。
例:

コードをコピーします コードは次のとおりです:

var text="こんにちは"; テキスト =" 世界!"

初期のブラウザでは、この操作が最適化されていませんでした。

文字列は不変であるため、これは、連結の結果を保存する中間文字列を作成することを意味します。バックグラウンドで頻繁に文字列の作成と破棄を行うと、パフォーマンスが非常に低下します。

したがって、配列オブジェクトを最適化に利用できます。

例:

var buffer=[],i=0; 
buffer[i++]="Hello";  //通过相应索引值添加元素比push方法快 
buffer[i++]=" World!"; 
var text=buffer.join("");
初期のブラウザでは、中間の文字列の作成と破棄がありませんでした。大量の文字列連結の場合、この手法は加算を使用するよりもはるかに高速であることが証明されています。


最近では、ブラウザーの文字列の最適化により、文字列の連結の状況が変わりました。 Safari、Opera、Chrome、Firefox、IE8 はすべて、加算演算子を使用するとパフォーマンスが向上します。ただし、IE8 より前のバージョンは最適化されていないため、配列メソッドは引き続き機能します。これは、文字列の連結時にブラウザ検出を行う必要があるという意味ではありません。連結方法を決定する際に考慮すべき点は、文字列のサイズと数です。

文字列が比較的小さく (20 文字未満)、接続数も少ない (1000 未満) 場合、すべてのブラウザーは加算演算子を使用して 1 ミリ秒未満で接続を簡単に完了できます。 IE7 では、文字列の数やサイズを増やすとパフォーマンスが大幅に低下します。文字列サイズが大きくなるにつれて、Firefox の加算演算子と配列合成手法の間のパフォーマンスの差は小さくなります。文字列の数が増えると、Safari での加算演算子と配列合成手法のパフォーマンスの差は小さくなります。 Chrome と Opera の加算演算子は、文字列の数やサイズを変更するときに先を行きます。

したがって、さまざまなブラウザーではパフォーマンスに一貫性がないため、選択されるテクノロジーは実際の状況と直面しているブラウザーによって異なります。

ほとんどの場合、加算演算子が推奨されます。ユーザーが主に IE6 または 7 を使用し、文字列のサイズが大きいか文字列の数が多い場合は、配列手法を使用する価値があります。


一般に、それがセマンティック文字列である場合、
のような配列は使用すべきではありません。 「こんにちは、私の名前は ' 名前です。
文字列が「同様の状況の繰り返し」である場合は、
のような配列を使用することをお勧めします。

var array = []; 
for (i = 0; i < length; i++) { 
array[i] = '<li>' + list[i] + '</li'>; 
} 
document.getElementById('somewhere').innerHTML = array.join('\n');
ここではjs文字列配列接続のパフォーマンス比較を紹介しますので、皆様のお役に立てれば幸いです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。