![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
d0k |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 27.5.2005 Репутация: нет Всего: нет |
Скрипт обрабатывает запрос и выводит ответ. Замечу сразу, что скрипт использует LWP и выводит ответ (строки) поочередно с некоторой паузой после проверки.
В браузерах почему-то соединение со скриптом разрывается после некоего таймаута и выводится только 2-3 первых результата. В чем причина? ![]() Как (с помощью каких заголовков) заставить браузеры ждать ответ скрипта полностью. Это сообщение отредактировал(а) d0k - 16.2.2010, 12:17 |
|||
|
||||
klem4 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 27.7.2008 Репутация: нет Всего: 2 |
Думаю Вам нужно покопаться в настройках Apache или тоге сервера который Вы используете. В Apache посмотрите директиву TimeOut
Это сообщение отредактировал(а) klem4 - 16.2.2010, 22:19 |
|||
|
||||
Nab |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 8 Всего: 37 |
Ну во первых, сам протокол HTTP на такое не расчитан. Хотя и есть Keep-Alive но и он имеет таймаут.
А в действительности здесь 2 параметра влияют: Первый, таймаут сервера. Это когда сам апач к примеру ждет выполнения долгоиграющего скрипта по моему секунд 30. Потом тупо убивает процесс. Второе таймаут браузера, С этим сложнее, тут вообще никак повлиять нельзя. Решения: Переписать скрипты пооптимальнее, чтобы время отклика было в разумных пределах. Узнать что первым отваливается сервер или клиент. Если сервер то поднять время таймаута. Сами ищите в настройках как называется. Если отваливается клиент, то когда-то давно я надыбал чье-то оригинальное решение. Пока скрипт не сформировал полностью контент он должен хоть чтото сделать, чтобы удержать клиента. И для этого подойдет периодическая, раз в секунду или даже реже, отправка скриптом символа с кодом \0. Ну то есть нультерминированной пустой строки. Это не даст повода браузеру закрыть соединение да и сервер будет какую-то активность поддерживать. При этом в вывод ничего не попадет. Конечно если браузер ожидает получить текстовый контент. Ну или применить туже технологию которая применяется для показа upload прогресс бара, при отправке файлов на сервер, Js+ AJAX. -------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
d0k |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 27.5.2005 Репутация: нет Всего: нет |
Сама конфигурация апача мне недоступна - сайт на виртуальном хостинге.
Спасибо за советы, попробую с постоянным выводом от скрипта нулевого символа для удержания клиента. Но есть одина особенность в этом во всем - ниже скрипт:
Этот скрипт без проблем работает и браузер ждет пока скрипт полностью выполниться и постепенно выводит результат. Но стоит в цикле использовать LWP - соединение теряется, как я и описывал выше. Может администраторы хостинга специально уменьшают минимальный таймаут ответа =( Это сообщение отредактировал(а) d0k - 17.2.2010, 23:24 |
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: нет Всего: 18 |
||||
|
||||
Nab |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 8 Всего: 37 |
Хахаха ![]() Большинство хостеров вообще запрещают коннект с хоста наружу. Чтоб не рисовали свои прокси не строили ботнеты и т.д. Тем более в цикле ![]() Спросите у своего хостера, разрешает ли он исходящие соединения. -------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
tishaishii |
|
|||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: нет Всего: 8 |
Есть такая схема работы клиент\сервер, называется NPH - вывод документа по частям, когда соединение не разрывается, покуда работает скрипт.
http://perldoc.perl.org/CGI.html#USING-NPH-SCRIPTS |
|||
|
||||
Nab |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 8 Всего: 37 |
tishaishii, внимательно ознакомтесь с тем что предлагаете, вы вообще пробовали расшифровать что значит NPH?
-------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
d0k |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 27.5.2005 Репутация: нет Всего: нет |
Всем спасибо за советы, разобрался: админы хостинга таймауты при исходящих запросах сократили до 1с, почему так и не объяснили.
Это сообщение отредактировал(а) d0k - 28.2.2010, 22:37 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl: CGI программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |