私は約1,000行を呼び出すと、私のWebページ上のテーブルを更新するajax呼び出しがあります。私のajaxコールをスピードアップしてテーブルに追加する方法は?
、更新するために、テーブルの上に約10秒間のページがフリーズ待っている間に - ページ文句をスクロールし、マウスオーバーが動作しない、など
いくつかの実験を行って、AJAX呼び出しが影響していないようですページ。ページをフリーズさせる '追加'機能のようです。
この方法をオンラインで読んだことがありますが、改善はありません。 ...
私の元のコードは...
$.ajaxSetup({ async: true });
$.ajax({
cache: false,
url: 'ajax_addtablerows.php',
dataType: 'json',
success: function(data) {
$.each(data, function (i,obj) {
tableUpdate = '<tr><td class="col1">' + obj.col1 + '</td><td class="col2">' + obj.col2 + '</td><td class="col3">' + obj.col3 + '</td><td class="col4">' + obj.col4 + '</td></tr>';
$('#myTable').append(tableUpdate);
});
},
});
しかし、私は「APPEND」コールが悪い考えだったルーピングと述べ、いくつかのSOの記事を読んで、私はこれに私のコードを更新しました
var tableUpdate = "";
$.ajaxSetup({ async: true });
$.ajax({
cache: false,
url: 'ajax_addtablerows.php',
dataType: 'json',
success: function(data) {
$.each(data, function (i,obj) {
tableUpdate += '<tr><td class="col1">' + obj.col1 + '</td><td class="col2">' + obj.col2 + '</td><td class="col3">' + obj.col3 + '</td><td class="col4">' + obj.col4 + '</td></tr>';
});
$('#myTable').append(tableUpdate);
},
});
「追加」を 'each'ループの外側に移動しました。
しかし、これは期待された改善をしていません。テーブルが更新されている間、ページはまだ約10秒間フリーズします。
私が行削除する場合:(!しかし、明らかに表が更新されません)
$('#myTable').append(tableUpdate);
を次に、ページがフリーズしたり、遅くなることはありません
だから、これはそれがあると信じて私をリードフリーズを引き起こしている「追加」。
これをスピードアップするためのヒントはありますか?
ページングやフィルタリング、またはスクロールなどのオンデマンドでの要素の追加を使用します。 4000行は多くの要素であり、ユーザーは一度にすべてを消化できるよりもはるかに多くのデータです。また、いくつかのプロファイリングを行います。実際のリクエストがどれほどの時間を要しているかわかりません – charlietfl
新しい 'tableUpdate'文字列を作る代わりに、' tableUpdate = [] 'のような空の配列を作成し、次に' tableUpdate.push '('
ええ。 @charlietflは正しいです。あなたはこれらの種類のスキャナーでページネーションに行くべきです –