PHP进程之前

时间:2011-03-03 18:29:57

标签: php html http-post

我有一个用于文件主机的网站。在管理员管理器中,我在删除用户时创建了一个函数,用户上传的数据被压缩,并移动到另一个服务器。

问题是当管理员点击删除用户时,我想要一条消息“请等待文件备份。”但是备份功能在标题之前运行,因此您无法将输出写入浏览器直到功能完成。基本上,管理员在备份文件时会看到一个空白页面。

设置如下:

<?php
if(isset($_POST['submit']))
   backupUser()
?>

<html>
<head><title></title></head>
<body>

<backup form>

</body>
</html>

2 个答案:

答案 0 :(得分:3)

对于这种情况,可能更好的解决方案是:

  • 当管理员删除用户时,请更新用户的某些字段&#39;表,表示该用户当前正在被删除
    • 例如:update users set status = 2;
  • 然后,定期(例如每小时一次),让PHP脚本在后台运行(通常使用cron), :
    • 对于标记为已删除的每个用户:select * from users where status = 2;
    • 真正删除用户
    • 并存档相应的文件。


有了这个:

  • 管理员可以继续工作,无需等待任何延迟
  • 您的网络服务器没有进行繁重的操作

你甚至可以让cron作业只在夜间服务器没有加载时运行,以避免在白天使用时降低其性能。

答案 1 :(得分:2)

执行此操作的唯一方法是使用jQuery等框架(javascript)包含AJAX功能。

过程如下:

  1. 点击[删除]用户
  2. 的链接
  3. 链接是触发远程页面的javascript事件
  4. 正在处理正在处理的显示/加载预告片正在显示
  5. 删除完成后,预告片会隐藏/消失
  6. 如果您需要或只是隐藏使用javascript调用点击的按钮,您可以在此时重新加载/重定向/更新页面。
  7. <强>参考文献: