PHP: Jak używać sesji na jednej stronie podczas ładowania innej strony z sesją

Używam CURL do pobrania dużego pliku z zewnętrznego adresu URL i zapisania go na moim serwerze. Może to potrwać do kilku minut. W trakcie pobierania używam curl_setopt ($ ch, CURLOPT_PROGRESSFUNCTION, .., aby uruchomić anonimową funkcję, która okresowo aktualizuje moją zmienną $ _SESSION ['download_progress'] z bieżącymi informacjami o pobieraniu.

Teraz wszystko to dzieje się w pliku upload.php i podczas gdy użytkownik czeka na pobranie pliku, używam javascript do żądania strony progress.php, która zawiera następujący prosty kod:

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

Dzięki temu mój kod javascript wyświetla informacje o postępie pobierania.

Tylko że nie działa.

Strona „progress.php” nie zostanie załadowana, dopóki nie zakończy się ładowanie pliku „upload.php” (innymi słowy obie strony ładują się dopiero po zakończeniu pobierania pliku) i to nie jest dobre. Session_start () blokuje w jakiś sposób stronę „progress.php”. Używam własnego serwera (apache + php 5.4), więc mam wszystkie uprawnienia administratora.

Jak mogę rozwiązać ten problem? Mogłabym użyć jakiegoś brzydkiego obejścia, takiego jak zapisanie informacji o pobieraniu w pliku tekstowym zamiast zmiennej sesji, a następnie użycie javascript do bezpośredniego odczytu tego pliku tekstowego, ale wolałbym tego nie robić.

Dzięki

questionAnswers(1)

yourAnswerToTheQuestion