У меня есть консоль управления внутренними данными, написанная с помощью CakePHP, которая позволяет пользователю управлять некоторыми иерархическими данными. Каждый раз, когда пользователь вносит изменения в данные, я хочу регенерировать файл данных (в данном случае JSON), который используется во внешнем интерфейсе сайта.
Перестройка может занять некоторое время, и я бы хотел, чтобы внутренний интерфейс был немного более отзывчивым. Моя идея состоит в том, чтобы перестроить JSON после того, как новая страница (страница «ваши изменения были сохранены») отображается пользователю. У меня есть некоторый код в обратном вызове afterFilter()
в моем app_controller.php
, но страница фактически не отображается в браузере, пока не завершится перестроение JSON.
Я нашел примеры кода для простого ванильного PHP, который делает такие вещи, как отправка HTTP-заголовка Connection: Close
и/или использует сброс выходного буфера, чтобы сообщить браузеру, что сервер выполнен, в то время как обработка продолжается, но эти методы не делают (насколько мне известно). могу сказать) работать со структурой CakePHP и собственной буферизацией вывода.
Мне бы хотелось иметь метод, который позволил бы мне полностью отобразить представление для пользователя, а затем, как только пользователь загрузит свою страницу, продолжить выполнение перестроения JSON в фоновом режиме.
Я понимаю, что могут быть определенные проблемы с ситуацией/настройкой, которые могут повлиять на вещи, поэтому, пожалуйста, дайте мне знать, если у вас есть вопросы о моем конкретном приложении.
Заранее спасибо.