所以,我正在处理CSV处理脚本的进度条。 dnc_scrubber.php
检查CSV并根据数据库检查电话号码,并将匹配的和不匹配的数据返回到单独的文件中。 lines.php
返回要处理的总行数,而progress.php
返回已处理的行数。我使用这两个数字来创建jQuery进度条函数完成的工作的百分比。.ajax()调用在上一个.ajax()调用完成之前不会完成?
我的问题是,在doProgressBar()
内的第一个.ajax()
呼叫没有完成,直到dnc_scrubber.php
的呼叫完成。为了说明,在Chrome浏览器中查看网络监视器时,请求lines.php
与dnc_scrubber.php
的请求同时发出,但在dnc_scrubber.php
运行完成之前没有收到响应。这里是相关的代码:
$('#progressbar').progressbar();
$.ajax({
url: 'dnc_scrubber.php',
type: 'POST',
async: true,
data: querystring,
success: function(){
for (i = 0; i < files.length; i++){
$('#complete').append('<a href="process/MATCHED - ' + files[i] + '">MATCHED - ' + files[i] + '</a><br />');
$('#complete').append('<a href="process/SCRUBBED - ' + files[i] + '">SCRUBBED - ' + files[i] + '</a><br />');
}
}
});
function doProgressBar(){
$.ajax({
url: 'lines.php',
async: true,
dataType: 'json',
complete: function (rez) {
lines = JSON.parse(rez.responseText);
lines = parseInt(lines.lines);
console.log('dpg1 - lines: ' + lines);
$.ajax({
url: 'progress.php',
async: true,
dataType: 'json',
complete: function (rez1) {
prog = JSON.parse(rez1.responseText);
prog = parseInt(prog.progress);
console.log('dpg2 - lines: ' + lines + ' prog: ' + prog);
if (lines > prog){
var bar = (prog/lines) * 100;
var bar = Math.round(bar);
$('#progressbar').progressbar('option', 'value', bar);
setTimeout(doProgressBar(), 1000);
console.log('dpg3 - lines: ' + lines + ' prog: ' + prog + ' bar: ' + bar);
} else if (lines == prog){
$('#progressbar').progressbar('option', 'value', 100);
console.log('dpg3 - lines == prog');
}
}
});
}
});
}
setTimeout(doProgressBar(), 100);
这是正常的功能吗?我试图做的是不可能的?我不知所措......在此先感谢帮助
编辑: lines.php
session_start();
header('Content-type: application/json');
echo json_encode(array('lines' => $_SESSION['lines']));
progress.php
session_start();
header('Content-type: application/json');
echo json_encode(array('progress' => $_SESSION['lines_processed']));
的CSV处理器在的结尾递增$_SESSION['lines_proccessed']
一个检查每个线路的过程
服务器在任何给定时间允许多少个连接? – nobody 2012-01-18 20:42:40
@根据我的IT人员,没有人允许大量的连接。它是一个运行lampp的内部Ubuntu开发服务器 - 主要是默认值。 – jebriggsy 2012-01-18 21:01:01