Javascript 更新数据库时的进度条

Javascript 更新数据库时的进度条,javascript,sql,database,sql-update,progress,Javascript,Sql,Database,Sql Update,Progress,我有一个相当大的数据库,需要几个小时才能更新。现在我有一个刚刚加载的微调器,但是用户不知道它有多远。我想知道如何才能制作进度条。问题是我不知道该怎么做 我没有在SQL中包含更新数据的方法,因为它是相当标准的。但是我可以编辑帖子,如果需要的话可以添加。但是,每次更新一行时,我都会回显以下行$statement->rowCount。成功更新记录 这是我更新数据库的主要方法 function updateDatabase($test, $optionName, $value) { set_time_l

我有一个相当大的数据库,需要几个小时才能更新。现在我有一个刚刚加载的微调器,但是用户不知道它有多远。我想知道如何才能制作进度条。问题是我不知道该怎么做

我没有在SQL中包含更新数据的方法,因为它是相当标准的。但是我可以编辑帖子,如果需要的话可以添加。但是,每次更新一行时,我都会回显以下行$statement->rowCount。成功更新记录

这是我更新数据库的主要方法

function updateDatabase($test, $optionName, $value) {
set_time_limit(0);
global $DAO;
try {
    foreach ($test as $post) {
        $accesToken = "1581461310.56cbc4a.869be6649a604df4874513126692a3ec";
        $updateMedia = 'https://api.instagram.com/v1/media/' . $post['insta_id'] . '?access_token=' . $accesToken;
        $insta_stream2 = Connect::instaconn($updateMedia);
        $obj = json_decode($insta_stream2, true);
        if ($obj['meta']['code'] == 200) {
            $DAO->updatePost($post['insta_id'], $obj);
        }
    }
    $DAO->updateSettings($optionName, $value);
    return "Database has been updated";
} catch (Exception $e) {
    return "Database has NOT been updated. Error:" . $e;
}
}
我通过AJAX调用从index.html更新数据库

            $('#updateDatabase').click(function (e) {
                var r = confirm("Warning: Updating the database can take a long time depending on the size. Do you want to update the database?");                 
                if (r === true) {
                    e.preventDefault();                    
                    var ajaxurl = '../crawler/api_update_dump.php',
                            data = {'action': 'updateDatabase', 'optionName': 'last_update', 'value': currentDate};
                    $.get(ajaxurl, data, function (response) {
                        // Response div goes here.
                        obj = JSON.parse(response);
                        console.log("response", obj);
                        document.getElementById("lastUpdated").innerHTML = "<font  color='white'>Last Updated: " + new Date().toJSON().slice(0, 10) + "</font>";
                    });
                }
            });

有人对我应该如何制作更新进度条有什么建议吗?

您可以发出另一个ajax请求来检查进度,查看长轮询。检查ajax进度条的此答案这使用事件侦听器来侦听进度事件。
 case 'getLastUpdate':
            $lastUpdate = $DAO->getValueFromTable("value", "settings", "option_name", "last_update", "value");
            echo json_encode($lastUpdate);
            break;