Дополнение страницы, без перезагрузки её, как в доргене red.button

Тема в разделе "PHP", создана пользователем Dador, 19 июн 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Dador

    Dador Читатель

    Заблокирован
    Регистр.:
    14 янв 2008
    Сообщения:
    368
    Симпатии:
    97
    Как там сделано? когда при генерации сайта, выводится сколько страниц сгенерировано, например:
    Создаем дорвей на 5 страниц → etototdor.ru
    0, 1, 2, 3, 4, 5
    Время генерации: 0.89397597313 сек.
    вот то что 0, 1, 2 и.т.д хоть их будет 1000, страницы грузится постепенно
    Смотря в исходный код доргена, я так ничего и не нашёл, нашёл ту функцию, вроде функция та, а когда в другой скрипт всё по другому.
    Как можно такое реализовать?
     
  2. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    Там аякс, кажись, используется... Но такое запросто можно сварганить так:

    PHP:
    $numbers range(115);
    foreach (
    $numbers as $value) {
        echo 
    $value;
        
    flush();
        
    sleep(1);
    }
    Попробуй закомментируй flush(); и поймешь в чем дело ;)
    ЗЫ: перенесено в новички
     
    Dador нравится это.
  3. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    в РБ используется связка
    PHP:
    print ();
     
    flush();
    как и указал Jeurey

    смотри например
    /yes/run.php строки 650 и 651
     
    Dador нравится это.
  4. Dador

    Dador Читатель

    Заблокирован
    Регистр.:
    14 янв 2008
    Сообщения:
    368
    Симпатии:
    97
    сейчас попробовал твой вариант без foreach - не сработало, есть вариант без него?

    (без него я побывал так:
    PHP:
    echo "Начинаем";
    flush();
    sleep(1);
    посмотрел, подставил даже тож самое - не работает, только после полной загрузки файла
    А в самом доргене работает =(

    ----
    Спасибо, сейчас за комментировал остальную часть скрипта - всё заработало, как и должно быть, со спячкой тоже норм.
     
  5. masto

    masto Прохожие

    случайно не на win тестируешь?
    на винде flush() странно работает.
     
  6. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    masto, раньше, когда сидел на виндах - вроде нормально работало :)
     
  7. masto

    masto Прохожие

    винда винде рознь, лично сам натыкался на горбыль - в никсах всё ОК, а на win flush() ни в какую.
    Да и на самом php.net думаю не просто так написано
    Правда потом нашёл способ как с этим бороться.
     
  8. lobzik

    lobzik

    Регистр.:
    8 авг 2006
    Сообщения:
    311
    Симпатии:
    49
    Действительно, есть трабла с флушем под Win... Короткие фразы не будут выведены пока буфер не заполниться определнным количеством данных. Помогоет отссылка кучи пробелов, а только потом текст сообщения, которое должно обновиться...
     
  9. Krokodile

    Krokodile Создатель

    Регистр.:
    9 фев 2008
    Сообщения:
    30
    Симпатии:
    3
    Это не из-за траблов flush и WIN. Буферизует вывод опера(точно) и IE(вроде). Под FF и WIN flush всё прекрасно выводит.
    А вот RB,кстати, умудряется сразу выводить под всеми браузерами.
     
  10. Karlasan

    Karlasan Постоялец

    Регистр.:
    7 дек 2007
    Сообщения:
    131
    Симпатии:
    204
    ещё от настроек пхп.ини может зависеть. попробуйте вставить сие в начало скрипта:

    PHP:
    @ini_set('output_buffering','off');
    @
    ob_end_clean();
    @
    ob_implicit_flush(TRUE);
    у меня пашет норм.
     
Статус темы:
Закрыта.