@UserTrue
Когда искал по форуму, часто встречал ответы этого пользователя. Если найдется минутка, поделитесь опытом. Пока выделил два возможных решения замены curl http. Может есть еще варианты? Какой вариант для вас лучше?
Помогите с логикой.
-
@fastspace said in Помогите с логикой.:
@xclsv Если ставить дефолтное ожидание, то всё работает как надо.
Наличие ограниченного ожидания лишь регулирует лимит ожидания полной загрузки страницы, но не отменяет продолжение получения ответа сервера и компиляцию данных в браузере.
-
@xclsv Хорошо, как мне тогда дождаться окончания выполнения предыдущего запроса и сделать новый? Я просто тогда таймауйт действие могу установить именно в тот момент когда прошлый запрос должен был оборваться. От чего это зависит? Это сам сервер устанавливает свой таймаут подключения к нему?
-
@fastspace said in Помогите с логикой.:
как мне тогда дождаться окончания выполнения предыдущего запроса и сделать новый
Ждать полной загрузки страницы =)
Полагаю, в это ожидание входит не только полная загрузка ответов серверов, но и компиляция полученных ответов в браузере.
Может случиться так, что какой-то из запросов на странице выполняется слишком долго, но к серверу уже можно делать новый запрос.
Думаю, в браузере не удастся настолько тонко регулировать таймауты.
Если не хотите ждать, пока будет происходить загрузка в браузере, используйте http-клиент.И воздержитесь от ожидания полной загрузки страницы. Используйте ожидание элемента. Регулируйте таймаут внутри этого действия. Тогда Вам будет не важно, выполнился ли запрос к серверу через прокси и в какой по счету итерации подгрузилась страница. Если уж за 5 итераций элемента дождаться не удалось, то всё, фиаско.
-
@xclsv said in Помогите с логикой.:
@fastspace said in Помогите с логикой.:
как мне тогда дождаться окончания выполнения предыдущего запроса и сделать новый
Ждать полной загрузки страницы =)
Полагаю, в это ожидание входит не только полная загрузка ответов серверов, но и компиляция полученных ответов в браузере.
Может случиться так, что какой-то из запросов на странице выполняется слишком долго, но к серверу уже можно делать новый запрос.
Думаю, в браузере не удастся настолько тонко регулировать таймауты.
Если не хотите ждать, пока будет происходить загрузка в браузере, используйте http-клиент.Это понятно, что необходимо ждать полную загрузку, вопрос лишь в том что сколько ждать. По умолчанию там стоит 60 сек и это видно мало, т.к сервер продолжает мне отдавать элементы и при повторной загрузке я ловлю ошибки. http клиент тоже не вариант использовать.
Чем будет отличаться ожидания полной загрузки от ожидания элемента? Ну вот допустим я жду кнопку button1 60 сек, нет этой кнопки за 60 сек - я делаю повторный запрос, я же ведь снова словлю ошибку?
-
@fastspace
Тем, что отдельные элементы могут появляться на странице гораздо быстрее, чем она полностью загрузится. И этого может быть вполне достаточно для продолжения работы, за исключением случаев, когда задача подразумевает обязательную полную загрузку страницы, к примеру, для отработки счётчиков. -
@xclsv Это хотя бы что-то. Тем более я проверку буду делать на нужный элемент который я должен буду нажать.
В общем итог, как решить проблему:
1)Дождаться таймаута от сервера. Нужно узнать сколько максимальное время подключения к серверу. Оно может быть и 2 минуты и все 3. Только тогда делать повторный запрос.
2)Убрать галку "ждать полной загрузки страницы" и начать ждать элемент. В случае ошибки ожидания элемента сделать повторный запрос.
Правильно? -
- Думаю, дело не в таймауте сервера. Просто через прокси ответ идёт слишком медленно. Чем больше будет тайм-аут ожидания, тем меньше будет ошибок. Ну и помните, что это ошибка ожидания загрузки, а не ошибка сервера. Сервер ответил вам 200 и послал страничку.
- Совершенно верно.
-
@besigor said in Помогите с логикой.:
у меня что то тоже подобное раньше было, забыл как страшный сон!

Подпили просто как тебе нужно ))Спасибо огромное :D СЧАСТЬЯ ТЕБЕ И БОГАТСТВА! РАБОТАЕТ! Скрипт идет на второй круг и ждет загрузки элемента. А то сторжилы форума понаписали тут :D А как повторный раз загрузить страницу не знают.
-
@FastSpace said in Помогите с логикой.:
Я даже немного улучшил его метод, скрипт чекает ошибку "не удалось загрузить" и ждет элемент.
Если кому надо - пишите.Приветствую, картинки, что вам скинули удалились. Просьба подсказать как реализовали )
-
@FastSpace поддерживаю вопросы выше. Тоже столкнулась с подобным. Форум доковыряла до этого поста, а варианта решения тут не видно. Подскажите, пожалуйста
-
@sergerdn said in Помогите с логикой.:
@Dubik said in Помогите с логикой.:
а варианта решения тут не видно
Разбить логику на функции и не использовать метки. Тогда не будет проблемы, с которой столкнулся топикастер.
Ты год видел когда я это спросил?
Там не влияют на это ни метки, ни функции. Та задача решается либо вайт кэшем, либо интерактивом, я уже давно это решил