2009-07-15 2 views
0

Я использую CodeIgniter для создания приложения. Приложение имеет много запросов AJAX на setTimeoutInterval, которое срабатывает каждые несколько секунд.codeigniter hook для проверки версии приложения

Теперь ситуация: Если у пользователя открыта страница. Страница отправляет запросы ajax с интервалами. В этот момент я обновил приложение на сервере.

Поэтому я хочу сохранить проверку версии, которая уведомляет пользователя, если приложение было обновлено тем временем.

Я использую CodeIgniter для создания этого приложения.

Я корчу крюк «post_controller», который проверяет версию в заголовке запроса и текущей версии приложения. Если что-то не так. Он отправит ответ на несоответствие версии и выйдет.

Теперь я могу делать все, но не могу остановить дальнейшую обработку. Если я даю exit() в этой конкретной ситуации, ответ вида не отправляется.

Я могу использовать простой эхо/печать. Но представление CodeIgniter не отправляет ответ, если я даю die()/exit.

ответ

0

Не уверен, что она будет работать, просто бросить его там:

Можно ли передать ваши обнаружения несоответствия вашей функции AJAX, а затем вызвать JavaScript window.location перенаправлять к стандартной «версии обновленного» ошибка страница?

0

Поскольку codeigniter хранит сеансы в базе данных, вы всегда можете узнать, кто подключен к приложению при обновлении вашего сервера.

когда делать проверку версии:

  • Everytime кто-то создать одну новую сессию

При обновлении системы:

  • Положите один флаг в конфигурации/конфигурации. php, как updated = true, тогда все сеансы активных действий будут вынуждены выполнять проверку.

С уважением, Педро

1

«Теперь я могу делать все, но не может остановить дальнейшую обработку. Если я даю выход() в данной конкретной ситуации, ответ вид не отправляется.

Я могу использовать простое эхо/печать. Но представление CodeIgniter не отправляет ответ, если я даю die()/exit. "

Вы не понимаете, что вы хотите делать при несоответствии версии - выход или отправка ответа? Просто выполните exit ('NEW_VERSION_AVAILABLE'), определите этот ответ в JS-коде и перезагрузите страницу.

Если вы хотите, чтобы запрос был проигнорирован компетентно, вы должны сделать то же самое в крюке pre_controller.

Смежные вопросы