0

3 つのテーブルとjQuery UI progressbarsajax 呼び出しで構成される単純なページがあります。

ajax は空の php ファイルを呼び出し、成功するとプログレスバーを破棄して再作成します。

IE7単純なように見えますが、実行すると と の両方でメモリ リークが発生しましたChrome(ただし、Chrome の方がはるかに適切に処理されました)。

これが私のコードです:

<script type="text/javascript" src="jQuery/js/jquery-1.3.1.js"></script>
<script type="text/javascript" src="jQuery/js/plugins/jquery-ui-1.6rc4.min.js"></script>
<link rel="stylesheet" type="text/css" href="jQuery/css/ui.all.css" />

<script type="text/javascript">
$(function(){
    timed();    
});

function timed()
{
    $.ajax({
        url: "index.php",
        success: function(msg){
            $(".progressbar").progressbar("destroy").progressbar();
        }
    });

    setTimeout("timed()",1000);
}

<table> 
<tbody>
    <tr> 
        <td>
          <div class="progressbar"></div>
        </td>
        <td>
          <div class="progressbar"></div>
        </td>
        <td>
          <div class="progressbar"></div>
        </td>
    </tr> 
</tbody>

私がここで見逃しているものについてのアイデアはありますか?

Success 関数$("*").unbind();の行の前に追加しようとしました。$(".progressbar")

4

2 に答える 2

0

なんで壊して作り直すの?進行状況の値をゼロにリセットして、後で再び必要になるまでそのままにしておく方が簡単ではないでしょうか。特に表示したくない場合は、.hide() することもできます。

于 2009-02-05T17:27:31.243 に答える
0

私がやろうとしていることは、アプリケーションの開始時に進行状況バーを作成し、それを複製して、処理が終了した後にテンプレートに追加することだと思います。これにより、現在のメモリ使用量 (更新ごとに約 100 から 300 k) ではなく、クロール (4 ~ 5 回の更新ごとに約 4k) までのメモリ使用量が本質的に遅くなります。

于 2009-02-05T21:51:21.460 に答える