我有一个使用 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),它也会永远这样。
目前,我不知道如何重新开始该过程。
我希望我把一切都说清楚了,并且有人能够帮助我。