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) を超えても永遠に続きます。
現在、プロセスを再開する方法がわかりません。
すべてが明確になり、誰かが私を助けてくれることを願っています。