2009-07-15 36 views
0

我正在使用CodeIgniter構建應用程序。 該應用在setTimeoutInterval上有許多AJAX請求,每隔幾秒觸發一次。codeigniter hook用於應用程序版本檢查

現在的情況是: 如果用戶有一個頁面保持打開。該頁面每隔一段時間發送一次Ajax請求。 在那個時候,我已經在服務器上更新了我的應用程序。

所以我想保留一個版本檢查,通知用戶在此期間應用程序是否已升級。

我使用CodeIgniter構建此應用程序。

我在扭動一個「post_controller」鉤子,它將檢查請求頭中的版本和應用中的當前版本。如果有什麼錯誤。它會發送版本不匹配的響應並退出。

現在我能夠做所有事情,但不能停止進一步處理。如果我在這種情況下給出exit(),則視圖響應不會被髮送。

我可以使用簡單的回聲/打印。但CodeIgniter視圖不發送響應,如果我給die()/退出。

回答

0

不知道它會工作,只是把它扔在那裏:

這將有可能給你的錯配檢測傳遞給你的AJAX功能,然後調用JavaScript window.location的重定向到一個標準的「版本更新」錯誤頁?

0

因爲codeigniter在數據庫中存儲會話,所以當您更新服務器時,您始終可以知道誰已連接到應用程序。

時候做的版本驗證:

  • 每次有人創建一個新的會話

當你更新系統:

  • 把一個標誌在配置/配置。 PHP的更新= true,那麼所有活動會話將被迫做驗證。

問候, 佩德羅

1

「現在我能夠做的一切,但不能停止進一步的處理。如果我給的exit()在這種特殊情況下,該視圖響應不被髮送。

我可以使用簡單的echo/print。但CodeIgniter視圖不發送響應,如果我給一個die()/ exit。「

您不清楚您想要對版本不匹配做什麼 - 退出或發送響應?只要做一個退出('NEW_VERSION_AVAILABLE'),在你的JS代碼中檢測這個響應,然後重新加載頁面。

如果您希望競爭性地忽略該請求,則應該在pre_controller鉤子中執行相同的操作。