2011-03-03 18 views
1

我有一個用於filehosting的站點。在管理員管理器中,當用戶被刪除時,我創建了一個功能,用戶上傳的數據被壓縮並移動到另一臺服務器。之前的PHP進程<head>

問題是,當管理員點擊刪除用戶時,我想要一條消息說「請等待文件備份」,但備份功能在標題之前運行,因此您無法將輸出寫入瀏覽器直到功能完成。基本上,管理員在備份文件時會看到一個空白頁面。

的設置是這樣的:

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

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

<backup form> 

</body> 
</html> 
+0

您是否希望郵件顯示在單獨的頁面上? – 2011-03-03 18:31:32

回答

2

做到這一點的唯一方法是包括使用框架(JavaScript)的如jQuery AJAX功能。

的過程會是像這樣:

  1. 點擊鏈接[刪除]用戶
  2. Link是觸發關閉遠程頁面
  3. 雖然動作處理JavaScript事件顯示/加載預告顯示
  4. 刪除完成後,預告隱藏/消失
  5. 您可以重新加載/重定向/更新頁面如果你需要或者只是隱藏使用javascript調用點擊的按鈕,那麼就是點。

參考文獻:

3

一個可能更好的解決方案,該種情況,應該是:

  • 當管理員刪除的用戶,在用戶的表更新一些領域,以表明該用戶正在刪除
    • 例如:update users set status = 2;
  • 然後,定期(每小時一次,例如),有在後臺(使用cron運行PHP腳本,典型地),以便:
    • 對於標記爲被刪除的每個用戶:select * from users where status = 2;
    • 確實刪除用戶
    • 並歸檔相應的文件。


有了這個:

  • 管理員可以繼續工作,而無需等待任何延遲
  • 您的Web服務器沒有幹過重的操作

你可以甚至只有在服務器未加載的夜晚才能運行cron作業,以避免降級pe性能表現在白天更多地被使用。

+0

非常聰明,我也可以在非高峯時段調查歸檔過程。 – user643462 2011-03-03 18:38:25

+0

可能會有負面影響,特別是如果你在一天中得到大量刪除,並且這個過程與另一個重疊(可能導致服務器匆忙中止)。這就是說,我的公司使用這個過程執行許多不同的任務,而不是太糟了。而且,如果您必須擴展,則可以將cron任務卸載到其他服務器以「處理」 – bpeterson76 2011-03-03 19:42:41