企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
# 1. 不使用AJAX ``` use phpspirit\databackup\RecoveryFactory; $recovery = RecoveryFactory::instance('mysql', '127.0.0.1:3306', 'test', 'root', 'root'); $recovery->setSqlfiledir(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'backup'.DIRECTORY_SEPARATOR.'20191205010418'); do { $result = $recovery->recovery(); echo str_repeat(' ', 1000); ob_flush(); flush(); if ($result['totalpercentage'] > 0) { echo '完成' . $result['totalpercentage'] . '%<br />'; } } while ($result['totalpercentage'] < 100); ``` # 2. 使用AJAX > 前端代码 ``` <input type="button" value="恢复" onclick="recovey({})" /> <script> function recovey(predate) { $.ajax({ url: 'recoveryajax.php', type: 'POST', //GET async: true, //或false,是否异步 data:predate, dataType: 'json', success: function (data, textStatus, jqXHR) { if (data.totalpercentage < 100) { datainfo = '正在恢复...'; } else { datainfo = '恢复完成'; } if (data.totalpercentage < 100) { recovey(data); } } }) } </script> ``` > 后端代码 ``` <?php use phpspirit\databackup\RecoveryFactory; $recovery = RecoveryFactory::instance('mysql', '127.0.0.1:3306', 'test', 'root', 'root'); $result = $recovery->setSqlfiledir(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'backup'.DIRECTORY_SEPARATOR.'20191205010418') ->ajaxrecovery($_POST); echo json_encode($result); ``` > 后端返回的数据格式 ``` 'nowfileidex' => $this->_nowfileidx, //当前正在恢复的文件 'totalpercentage' => (int) $totalpercentage, //总百分比 ```