Forum Webscript.Ru
Программирование => Perl => Тема начата: Green Kakadu от 25 Апреля 2002, 15:02:59
-
Есть такая проблема: у некоторых пользователй скрипта при отправке большого объема данных возникает проблема - броузер выдает окно, типа сервер не отвечает и т.д.
Как я где-то на заборе прочитал, это связано с тем, что скрипт получает/обрабатывает данные, потом уже отвечает, и у некоторых (типа от интернет-провайдера зависит) этот промежуток времени "без ответа" (т.е. получение и обработка данных) не укладывается во время, отведенное на ожидание ответа сервера, ну и соотв. последствия.
Как с этим бороться?
:) у меня самого такого нет, но жалуются люди..
-
off: sorry за предыдущий "ответ" (случайно нажал)
С чужим интернет-провайдером вряд ли можно успешно бороться :) А вот отправлять данные по частям, не дожидаясь окончания работы скрипта, вполне реально.
Кстати, а через какое время наступает таймаут в вашем случае?
-
Кстати, а через какое время наступает таймаут в вашем случае?
в том то и дело - что это не у всех.
Например, у меня все ОК, можно запостить 15/20/30кб
У многих тоже проблем нету.
А вот у кого-то не получается закинуть статью более 3кб
:(
(размеры влияют, т.к. происходит обработка самого закидываемого текста)
А вот отправлять данные по частям, не дожидаясь окончания работы скрипта, вполне реально.
ситуация такая:
человек закидывает в форму статью, жмет сабмит ну и потом после того как скрипт ее закинет в БД, показывает страницу - "Все ОК!".
Соответственно, надо бы убедится что действительно все ОК, прежде чем ;) писать об этом..
-
А разве дело не в этой директиве апач
Timeout 300
-
Green Kakadu
Я сначала подумал, что дело в долгой генерации ответа (она должна решаться), а не в долгом получении данных.
Например, у меня все ОК, можно запостить 15/20/30кб
У многих тоже проблем нету.
А вот у кого-то не получается закинуть статью более 3кб
Да не повезло им... с провайдером :)
Могу предложить только вот что:
как альтернативный вариант предлагать заливать статью по частям или в архиве, а на сервере распаковывать - это если проблема в коннекте.
(размеры влияют, т.к. происходит обработка самого закидываемого текста)
А вот если проблема в длительной обработке, то:
отправлять данные по частям, не дожидаясь окончания работы скрипта
В смысле выталкивать какие-то куски (хоть html-комментарии), чтобы ожидание ответа сервера не было слишком долгим. Сам не пробовал.
-
Kostya
А разве дело не в этой директиве апач
Timeout 300
Не, не о том речь. Если я правильно понял проблему, настройки сервера, на котором работает этот скрипт, не является лимитирующим фактором.
-
А разве дело не в этой директиве апач
Timeout 300
Не, не о том речь. Если я правильно понял проблему, настройки сервера, на котором работает этот скрипт, не является лимитирующим фактором.
Вроде бы не то (т.е. я не говорю конкретно, т.к. сам не знаю) - дело не в ограничении времени работы скрипта сервером.
Наверное стоит попробовать генерить какието куски ответа в процессе обработки (как YA предложил), может просто кто-то с этим сталкивался...
На локалхосте вообще с этим нет проблем - хоть 100 килобайтную статью можно запостить
-
Вроде бы не то (т.е. я не говорю конкретно, т.к. сам не знаю) - дело не в ограничении времени работы скрипта сервером.
Если нет уверенности, то надо сначало точно проверить по логам.
-
Если нет уверенности, то надо сначало точно проверить по логам.
;) так это ж не ошибка скрипта, там нету ничего.
-
у некоторых пользователй скрипта при отправке большого объема данных возникает проблема
Собири данные о этих некоторых (браузер, ос , ip,....). Может есть какая закономерность.
-
так это ж не ошибка скрипта, там нету ничего.
Да, действительно - ничего. После timeout\'a у скрипта с бесконечным циклом удалось лишь добится записей типа "forcing termination of child #0 (handle 288)" в error.log и только при перезагрузке сервера. :) Это у меня на винде. А нормально настроеный рабочий сервер под *nix вроде бы и такой лажи допукать не должен. Хотя для данной темы это уже не важно.