# 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, //总百分比
```