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 回答