我有一個控制器,其中包括髮送電子郵件。我需要在發送電子郵件之前向用戶回覆消息(否則,看起來屏幕卡住了)。
那麼,在我到達控制器的末端之前,我該如何迴應在控制器啓動時設置的消息,或者我應該如何一起考慮另一個方向?如何在ZF中刷新輸出
0
A
回答
1
嘗試可能:
<?php
//...
public function someAction()
{
echo "Something";
ob_flush();flush();
}
這forum post討論您的問題。他們建議:
<?php
$frontController = Zend_Controller_Front::getInstance();
$frontController->setParam('disableOutputBuffering', true);
然後執行ob_flush();flush();
技術。
0
您可以嘗試使用關機功能發送電子郵件。如果你也刷新輸出緩衝區,這將確保用戶首先看到渲染的頁面。在你的代碼調用:
register_shutdown_function('send_email', $params);
再有,看起來像一個函數:
function send_email($params) {
ob_flush();flush();
// Send your email here
}
1
有關問題的郵件部分。
根據時間的不同 - 請求消息需要發送多久 - 另一種可能性是創建一個消息隊列(可能是一個數據庫表),向該表寫入一條記錄,然後運行一個cron進程消耗隊列,發送任何未發送的消息,標記爲已發送等。
相關問題
- 1. 刷新GAE中的輸出?
- 2. 如何使用Codeigniter 3刷新輸出?
- 3. Python ctypes:如何從stderr刷新輸出?
- 4. 如何刷新多行輸出動態
- 5. 在Perl中刷新多行輸出
- 6. 如何在python中刷新輸入流?
- 7. 如何在Matlab或Octave中刷新disp的輸出?
- 8. PBS,刷新標準輸出
- 9. 刷新文本框輸出
- 10. 如何在JTextPane中無刷新刷新(刷新)文本
- 11. 如何刷新git的差異輸出Vim中
- 12. 如何緩衝刷新輸出到webapp2中的瀏覽器?
- 13. 如何在Controller階段刷新Zend輸出緩衝區?
- 14. 如何在刷新時刷新進度對話框在Android中刷新?
- 15. 如何在重新調用顯示輸出時刷新GraphicsEnvironment.getLocalGraphicsEnvironment()結構?
- 16. 問題輸出刷新到SSE
- 17. 刷新PHP的輸出,而不realoading
- 18. 使用ajax刷新PHP的div輸出
- 19. 仿真PTY和輸出線刷新流
- 20. 刷新Visual Studio輸出窗口
- 21. 標準輸出將不刷新異常
- 22. 我需要刷新servlet輸出流嗎?
- 23. 如何更改刷新到瀏覽器的輸出權限?
- 24. 如何刷新使用stdio函數寫入的輸出?
- 25. 使用Java調用Linux終端:如何刷新輸出?
- 26. 如何正確刷新PHP輸出緩衝區?
- 27. 如何刷新拉出網格與刷新頁面
- 28. 如何刷新出來與刷新另一個頁面
- 29. 如何在ZF中編寫此查詢?
- 30. 如何在ZF中使用部分?
我需要佈局也在那裏。 – 2009-09-23 15:39:08
在這種情況下,您可以在加載視圖時執行某種AJAX請求,因爲佈局在控制器操作執行後呈現,而不是在執行期間呈現。 – Chris 2009-09-24 03:26:49
這麼想......謝謝! – 2009-09-29 02:29:45