我正在使用jQuery的ajax来运行一个php脚本,如下所示:
jQuery.ajax({
type: "POST",
url: "my_php_script.php",
success: function( response ) {
console.log(response);
},
error: function(){
console.log('error is...');
}
});my_php_script.php循环遍历数组,并在每个产品上运行一个函数:
$count = count($array);
$i = 0;
foreach ($array as $item) {
myFunction($item);
$i++;
if($i == $count){
echo json_encode('all done and a success');
}
}这一切工作,但脚本通常需要大约2-3分钟才能完成,所以我需要显示的进度为观众,而它运行。我该怎么做呢?
我可以通过添加以下内容获得循环的百分比
$percent = intval($i/$count * 100)."%";
echo json_encode($percent);放入我的php循环,如下所示:
$count = count($array);
$i = 0;
foreach ($array as $item) {
myFunction($item);
$percent = intval($i/$count * 100)."%";
echo json_encode($percent);
$i++;
if($i == $count){
echo json_encode('all done and a success');
}
}但是如何在我的jQuery ajax调用中获得这个值呢?
发布于 2014-10-27 18:55:40
$.ajax({
url: path,
xhrFields: {
onprogress: function (e) {
}
},
success: function (response) {
}
});找到了这个例子,希望能有所帮助。
发布于 2014-10-28 18:46:02
通过在我的数组循环中将百分比写入到一个唯一命名的文本文件中,最终实现了这个功能:
$percent = intval($i/$count * 100)."%";
$_text = file_get_contents($_file);
$_text = $percent;
file_put_contents($_file, $_text);然后在我的html页面中,我每隔2秒检查一次文件的内容,方法是:
jQuery.get('file.txt?'+new Date(), function(data) {
console.log(data);
}, 'text');我确信这不是最好的方法,但为了在有限的时间内让它工作,这是我能想到的所有方法。希望能对其他人有所帮助
https://stackoverflow.com/questions/26585665
复制相似问题