как вызвать функцию после завершения загрузки страницы

Я пытаюсь вызвать функцию после того, как страница была отправлена ​​в браузер, но я не нашел способ сделать это.

Я пробовал и register_shutdown_function, и __destruct, но он не работает.

Это та структура, которая у меня есть:

register_shutdown_function('MyClass::Save'); MyClass::Initialize(); CreateAllOutput(); 

MyClass :: Save сна (20) внутри.

Функция shutdown вызывается после CreateAllOutput (), но правда в том, что панель загрузки в браузере завершается только после того, как функция Save была выполнена, ожидая 20 секунд … Я пробовал то же самое с использованием нестатического класса и __destruct, сна (20) внутри, и то же самое происходит.

Есть ли способ заставить функцию выполнять только после того, как все данные были отправлены в браузер?

Заранее спасибо.

Обычно: нет . Нет никакой возможности, кроме как сбросить весь вывод, а затем вызвать его, но панель загрузки в браузере не завершится.

Единственное, о чем я могу думать, это положить iFrame на страницу, чтобы вызвать PHP-файл с функцией сохранения. Или вы можете сделать вызов Ajax.

Третьей возможностью было бы вызвать exec() ( Documentation ). После создания файла php можно выполнить его с помощью этого метода. Как указано в документации:

Если программа запускается с этой функцией, чтобы она продолжала работать в фоновом режиме, выход программы должен быть перенаправлен в файл или другой выходной поток. В противном случае PHP зависнет до завершения программы.