PHP: Как использовать сессию на одной странице, пока загружается другая страница с сессией

Я использую CURL для загрузки большого файла с внешнего URL-адреса и сохранения его на моем сервере. Это может занять несколько минут. Во время загрузки я использую curl_setopt ($ ch, CURLOPT_PROGRESSFUNCTION, ..) для запуска анонимной функции, которая периодически обновляет мою переменную $ _SESSION ['download_progress'] текущей информацией о загрузке.

Теперь все это происходит в файле upload.php, и пока пользователь ожидает загрузки файла, я использую javascript для запроса страницы progress.php, которая содержит следующий простой код:

session_start();
echo $_SESSION['download_progress'];

Это позволяет моему коду JavaScript отображать информацию о ходе загрузки.

За исключением того, что это не работает.

Страница «progress.php» не будет загружаться до тех пор, пока не будет завершена загрузка «upload.php» (другими словами, обе страницы загружаются только после завершения загрузки файла), и это не хорошо. Session_start () каким-то образом блокирует загрузку страницы "progress.php". Я использую свой собственный сервер (apache + php 5.4), поэтому у меня есть все права администратора.

Как я могу решить эту проблему? Я мог бы использовать некрасивый обходной путь, например записать информацию о загрузке в текстовый файл вместо переменной сеанса, а затем использовать javascript для непосредственного чтения этого текстового файла, но я бы предпочел этого не делать.

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос