CGIを呼び出してXMLを取得し、解析し、テーブルを作成し、このテーブルをユーザーに表示するスクリプトがあります。それはかなり簡単です。スクリプトperformace - スクリプトがブラウザをクラッシュする
私の問題は、このXMLが大きすぎるとユーザーのブラウザがクラッシュすることがあるためです。 私は自分の仕事で何が改善できるかについてあなたの意見を求めます。
この機能は:
[1]です。これは、XMLを解析します
var xmlDoc = req.responseXML;
var rows = xmlDoc.getElementsByTagName('row');
var columns = rows[0].getElementsByTagName('column');
そしてこの後、私は私のテーブルを作成する列を反復します。
[2]。私は、このような文字列を連結したテーブルを作成しています(各行の各列を繰り返しています)。
tableCells += '<td style="text-align:left">' + value + '</td>';
[3]。そして、終了する、私はこれを行う:
私は時間がこれらの手順は、(クロームとFirefoxの+放火魔とプロファイリング)かかり方法を確認document.getElementById('results').innerHTML = resultsTable;
document.getElementById('results').style.display = "";
:私はすべての連結を削除
- と[3]。機能は0.5秒かかりました。
- 私は[3]だけを削除しました。関数は1.5秒かかりました。
- しかし、[3]を追加すると、私の関数は15.5秒(!!!)かかります。
私はそれを改善するために何ができますか?
ありがとうございました!
は、頻繁にDOMツリーの変更がより多くの時間を要し、それをページに追加し、イベントの多くを起動することができます。 – Mikhas
ブラウザによっては、この質問に関する相違点があります。http://andrew.hedges.name/experiments/innerhtml/ – Alex
実際には。私はまた、このノードを追加するために、ドキュメントルートの外に別のノードを使用します。 – Mikhas