0

ajax を使用する関数があり、完了するまでに非常に時間がかかります。
問題は、サーバー上に処理が必要なファイルがたくさんあり、作成しようとしているページがステータス ページのようなものであるということです。

処理を開始するためのリンクとファイル数があります。次のようになります。


ここをクリックしてプロセスを開始します

ファイル 0/500


リンクをクリックすると、次の関数が実行されます。

function generate_book_link_clicked(){
    $.getJSON("/generate_book", function(data){
      if (data['last'] == 'true'){
        $('#done').fadeIn(200);
      }else{
        $('#current_count').html(parseInt($('#current_count').text())+1);
        $('#generate_book_link').click();
     }
    });
}

これはリンクコードです:

<a href="#" id="generate_book_link" onclick="generate_book_link_clicked">click me</a>

これはカウンター html のコードです ("<%= @isbn_count.to_s %>" は単にカウントを返します):

<span id="current_count">0</span>/<span id="total_count"><%= @isbn_count.to_s %></span>

しかし、何が起こるかというと、ajax が完了すると、プロセスを最初からやり直すことはなく、ajax 呼び出しなしでカウントが急速に追加され始めます。最初は正常に終了しますが、その後、「current_count」に値を急速に追加し始め、元のカウント (1000/500) を超えても永遠に続きます。

現在、プロセスを再開する方法がわかりません。

すべてが明確になり、誰かが私を助けてくれることを願っています。

4

1 に答える 1

0

それ以外の

$('#generate_book_link').click();

関数を直接呼び出すだけです:

generate_book_link_clicked();
于 2012-11-12T08:22:27.780 に答える