За последние 24 часа нас посетили 18889 программистов и 1708 роботов. Сейчас ищет 881 программист ...

Как отобразить страницу раньше, чем завершится скрипт?

Тема в разделе "PHP для новичков", создана пользователем Павел, 5 авг 2009.

  1. Павел

    Павел Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    8
    Симпатии:
    0
    Привет!

    Мой скрипт состоит из двух частей.
    Первая генерирует HTML страницу.
    А вторая загружает ресурс из сети и сохраняет его в файл.
    Загрузка - долгая операция и может выполняться до 10 секунд.
    Результат загрузки никак не отражается на содержимом HTML страницы.
    Сначала выполняется первая часть, а потом вторая.

    В ходе загрузки браузер ничего не отображает, и страница появляется только после того, как скрипт завершен.

    Задача - вывести HTML страницу как можно раньше.

    Можно ли запустить задачу загрузки в отдельном процессе?
    Можно ли сообщить браузеру перед этапом загрузки, что страница готова и ее можно отображать?

    Я попробовал вызвать flush() в конце герерации HTML.
    В этом случае браузер выводит HTML сразу после первого этапа.
    Но, к сожалению, SWF, который является ключевой частью страницы появился только в самом конце, после загрузки.
     
  2. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Читать, читать и читать:
    http://us3.php.net/manual/en/ref.outcontrol.php
     
  3. Если бы PHP был собран с php-fpm, то можно было бы — http://php-fpm.org/Features#fastcgi_fin ... uest.28.29
     
  4. Павел

    Павел Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    8
    Симпатии:
    0
    Спасибо, Apple, за оперативный ответ и добрый совет.

    К сожалению, проблема остается неразрешенной.

    Я понял почему не открывается SWF.
    Я использую библиотеку SwfObject, она открывает SWF по событию onLoad().
    А событие onLoad() увы происходит после 2-ого этапа.
    Насколько я понял читая документацию и комментарии по вашей ссылке, со стороны PHP невозможно сказать браузеру о том, что страница полностью готова.
     
  5. Павел

    Павел Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    8
    Симпатии:
    0
    К сожалению, не имею доступа к php-fpm