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