php - 使用 jQuery.ajax 获取 PHP 脚本的进度

标签 php jquery ajax progress

我正在使用 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 调用中获取这个值?

最佳答案

$.ajax({
    url: path,
    xhrFields: {
        onprogress: function (e) {

        }
    },
    success: function (response) {

    }
});

发现这个例子希望它有帮助。

关于php - 使用 jQuery.ajax 获取 PHP 脚本的进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26585665/

相关文章:

php - Laravel - Eloquent 在比较之前将查询参数转换为整数

php ajax评论系统不起作用查询不插入任何内容

php - Laravel 集合 : extract specified set of keys and set the non-existing keys to a default value

php - 数组值仅返回第一个字符和额外值

javascript - 什么更有效率 : listeners or functions in jquery

javascript - IE10 和 11,jQuery 动画和溢出的意外行为

javascript - jQuery Fancybox 触发器无法正常工作

javascript - 如何使用ajax发送图像和数据

asp.net - 将 AJAX 回调与 ASP.NET 用户控件结合使用

php - 无法在我的 Windows 10 PC PHP 版本 8.0.3、Laravel 版本 8 上安装 spatie laravel-backup 包