Search
Calendar
    123
45678910
11121314151617
18192021222324
252627282930 
<< June 2017 >>
Sponsored links
COUNTER 2005/08/19
Total

Unique
あなたのブログのお値段は?
GoogleAdSense
なかのひと
New Entries
Recent Comment
Recent Trackback
Category
Archives
Profile
Links
mobile
qrcode
RSSATOM 無料ブログ作成サービス JUGEM
スポンサーサイト

一定期間更新がないため広告を表示しています

posted by: スポンサードリンク | - | | - | - |
jQuery の empty() メソッドが遅い

// html
<div id="search_result">
    <table>
        <tr><td>hoge1</td></tr>
        <tr><td>hoge2</td></tr>
        <tr><td>hoge3</td></tr>
        <!-- こんな感じでいっぱい行があるよ -->
    </table>
</div>


// Javascript
$('#search_result').empty();

jQuery で大量のDOMオブジェクトを削除すると異常に時間がかかる。
650行ほどのデータを削除すると30秒とかかかるんですが・・。
jQuery は 1.3.2 を使用。


// Javascript
$('#search_result').remove();

empty() は子要素を削除するので遅いのかと思って remove() に変えてみる。
remove() は自分ごと削除。
それでも全然早くならない。


 

// Javascript
$('#search_result').html('');

削除が遅いなら html() で直接中身を書き換えてやろう。
やっぱり早くならない。


 

// Javascript
$('#search_result')[0].innerHTML = '';

ぬぬぬ、じゃあ DOMオブジェクト のinnerHTML を直接書き換えてやろう。
やったー!
一瞬で終わったよ!

$('#search_result') ここまでは jQuery なのに早くなるのか。
よくわからん。。。

 

 

この問題は jQuery1.4 では解決されてるみたいだすよ。
速度の比較 をみたら変わりすぎてて笑った。

posted by: Diz | web開発 | 00:01 | comments(0) | - |
スポンサーサイト
posted by: スポンサードリンク | - | 00:01 | - | - |