更新数据库时的进度条

时间:2015-10-01 10:23:49

标签: javascript sql database sql-update progress

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

我没有包含我在SQL中更新数据的方法,因为它非常标准。但我可以根据需要编辑帖子并添加它。但是,每次更新行时,我都会回显以下行$statement->rowCount() . " records UPDATED successfully";

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

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>";
                    });
                }
            });

在我的php文件中,AJAX调用以下列方式接收

 case 'getLastUpdate':
            $lastUpdate = $DAO->getValueFromTable("value", "settings", "option_name", "last_update", "value");
            echo json_encode($lastUpdate);
            break;

任何人都有任何建议我应该如何为更新制作进度条?

0 个答案:

没有答案