PHP: отображать страницу загрузки во время выполнения php-скрипта

Вот что у меня сейчас...

У меня есть веб-страница, при доступе к которой она подключается к Surveygizmo.com через их открытый API, извлекает много данных, а затем возвращает эти данные мне для обработки с моей стороны. Этот процесс занимает примерно 10-12 секунд, и пока он выполняется, страница просто находится в состоянии «загрузки», и мне показывают пустую белую страницу.

Вот что я хочу, чтобы произошло...

При доступе к той же веб-странице я хотел бы, чтобы она запускала выполнение скрипта и начинала извлекать данные из Surveygizmo.com через их API так же, как я делаю это сейчас, но пока этот процесс выполняется, я хотел бы, чтобы вместо пустой белой страницы отображалась страница/сообщение «Результаты загружаются», а затем, как только выполнение скрипта завершается и все результаты возвращаются и обрабатываются, страница/сообщение «Результаты загружаются» исчезают .

Я довольно хорошо знаком с php и javascript, но еще не смог понять это. Любое направление или совет по этому вопросу будет принят с благодарностью.

Спасибо!


person lewisqic    schedule 01.10.2010    source источник
comment
Первое, что приходит на ум, это, конечно, вставка загружаемого изображения на стороне клиента и использование AJAX для запроса к серверу........... Только на стороне сервера... может быть, очистка буфера?   -  person Peter Ajtai    schedule 01.10.2010


Ответы (2)


Вы захотите взглянуть на AJAX. Решение состоит в том, чтобы отправить браузеру «загрузочную» страницу, которая содержит javascript, который показывает сообщение о загрузке, а затем асинхронно подключается к фактическому серверному сценарию, генерирующему данные. Когда вы получили и обработали данные, вы можете вставить их в DOM и удалить сообщение о загрузке. Поиск в Google для XMLHttpRequest даст вам подробную информацию.

person e.p.    schedule 01.10.2010

Создайте страницу загрузки, которая отображает желаемое сообщение о загрузке. Затем, используя ajax (Я НАСТОЯТЕЛЬНО рекомендую jQuery), загрузите отдельный файл php, который загружает внешние данные. Как только данные возвращаются на вашу страницу загрузки, достаточно просто скрыть сообщение о загрузке и заменить его выводом ajax.

person Capt Otis    schedule 01.10.2010
comment
Я бы предложил не использовать ЗАГЛАВНЫЕ БУКВЫ для выделения. Вы можете поставить * до и после слов, которые хотите выделить курсивом, или ** для жирного шрифта и (в ответах, но не в комментариях) *** для курсивного и полужирного текста. Кроме того, я согласен с вашей рекомендацией: jQuery — это просто потрясающе. - person David says reinstate Monica; 01.10.2010
comment
Да, я знаком с ajax, просто не знаю, будет ли это идеальным решением для моей конкретной проблемы. - person lewisqic; 01.10.2010