аякс запрос на сниппет
всем привет.
прошу совета — кидаю аякс запрос на сниппет (передаю параметры), в нём пачка запросов к другому сайту. при большом количестве запросов / большом количестве обрабатываемой инфы браузер обрезает по таймауту (1 минута).
что с этим можно сделать? листинг пока не прикладываю — сликом много строк…
из вариантов — выводить построчно результаты каждого запроса к стороннему сайту, но тогда не понимаю как правильно прописать аякс на сниппет…
прошу совета — кидаю аякс запрос на сниппет (передаю параметры), в нём пачка запросов к другому сайту. при большом количестве запросов / большом количестве обрабатываемой инфы браузер обрезает по таймауту (1 минута).
что с этим можно сделать? листинг пока не прикладываю — сликом много строк…
из вариантов — выводить построчно результаты каждого запроса к стороннему сайту, но тогда не понимаю как правильно прописать аякс на сниппет…
Комментарии: 6
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Вы создаете на JS запрос к скрипту на php
Передаете в php какие-то параметры, которые будут доступны либо в $_GET либо в $_POST в зависимости от выбранного метода ajax запроса.
В чем — в нем? в php скрипте? Что значит запросов к другому сайту? Через curl?
браузер не может ничего обрезать. Сервер имеет время на выполнение скрипта и если за это время не получен ответ, то выдается ошибка 50*
Если ваш php скрипт не успевает на сервере обработать информацию за 60 секунд, настраивайте файл php.ini и в нем задавайте большее время для работы скрипта.
Да, запрашиваю данные по API
уже настраивал, похоже проблема была в настройках nginx.
основной вопрос как принципиально изменить сниппет чтобы не приходилось настолько изменять настройки сервера…
Там, где требуются большие затраты времени на получение данных, скрипты нужно запускать в фоне (например cron по расписанию) и кэшировать у себя в базе данных или иным способом. Вот их потом и отдавать по ajax пользователям.
Я 2 варианта использую:
— сбор данных по cron и кэширование у себя
— если нужно отправить несколько запросов к сторонним серверам, то нужно это делать не одним ajax-запросом, а отдельными с таймаутом. По истечении таймаута каждого ajax-запроса что-то сообщать пользователю. Так или часть данных будет получена или хотя бы пользователь видеть какой-то результат запроса.