在循环结束时向页面添加信息以显示进度

时间:2011-01-11 16:44:10

标签: php javascript jquery ajax

我有一个循环,它贯穿文本区域的行并处理循环中的每一行。

此时页面一直处于冻结状态,直到所有数据都被处理完毕。

我怎样才能做到这一点,一旦一条线完成处理(当它循环回来时),它就会添加例如“Line 1 processed”“Line 2 processed”等,以便用户可以看到它正在工作。

我正在使用PHP,并希望使用jquery,因为我已在网站上使用它。

由于

3 个答案:

答案 0 :(得分:1)

由于您没有指定任何细节,我只会猜测您可以做些什么:

$(document).ready(function(){
    //get the textarea value
    var value = $('textarea#my_textarea').val();
    //split it into lines
    var lines = value.split('\n');
    //for every line
    for(var i = 0; i < lines.length; i++){
        //call line_proccesser.php passing a line to it
        $.post(
             'line_proccesser.php',
             {line:lines[i]},
             function(){
                 //when script has worked, printing status info
                 $("#info").append('Line ' + (i+1) + 'processed<br />');
             }
        );
    }
});

答案 1 :(得分:0)

抱歉第一次没有正确阅读你的问题..

也许这会有助Iterating through a PHP array in jQuery?

答案 2 :(得分:0)

如果您使用ajax处理您的请求,则在完成所有处理之前不会生成任何反馈,因此您可以:

  1. 使用@Silver Light的解决方案并将请求拆分为多个请求(有缺点);
  2. 解决类似模式叠加(调暗页面)和显示旋转轮以向用户显示其正在工作的问题。