Как добиться 100% загрузки страницы.
-
Добрый день, друзья!
Автору в очередной раз спасибо за софт!
Мой вопрос наверняка нубский и уже имеет решение. Но мне кажется, ответ на него может быть полезен новичкам, поэтому я не стал его задавать в личку саппорту. Изложу суть тут.
В моей работе частенько не загружаются некоторые страницы и скрипт останавливается. Причем это могут быть не только специфические внутренние страницы сайтов, но и общеизвестные морды сайтов в духе mail.ru ))
Пока у меня так и не получилось победить эту задачу, вероятно, я что-то делаю не так ) Решаю ее, обычно, следующим образом
Если на словах, то загружаем страницу один раз, проверяем появление лого сайта (так собственно и понимаем, что сайт загрузился). Ну и дальше в цикле (с условием входа - лого существует = true) грузим нужный сайт до тех пор, пока лого не появится.
Мне кажется, решение довольно топорное. Да, можно объявить булеву переменную до цикла и этим облегчить код. Пока не научился делать это при помощи готовых функций bas, но знаю, что в принципе объявить и присвоить булево значение переменной возможно.
Извращался с ответом сервера, но суть та же и, почему-то часто ответ 404 даже на загруженной странице.
Также, мне кажется тут мог бы помочь цикл с постусловием типа do-while. Но я так понял, его в bas пока нет и придумал его альтернативу выше )
Может вообще готовая функция есть да я ее не вижу.
Как Вы решаете такие задачи?
-
@xclsv Ну если мне очень нужно дождаться загрузки я просто ставлю время на полную загрузку побольше и проблем вроде не было.
-
@Canine said in Как добиться 100% загрузки страницы.:
@xclsv Ну если мне очень нужно дождаться загрузки я просто ставлю время на полную загрузку побольше и проблем вроде не было.
С ожиданием загрузки страниц проблем пока не возникало. Вопрос в том как победить ситуацию, когда по каким-то причинам сервер не отдал страницу вообще.
-
@xclsv Загрузку страницы в игнорировать ошибки и вставить переменную WAS_ERROR в IF и все это можно в отдельную функцию, если нужно много раз повторять, можно еще счетчик сделать, чтобы больше столики то раз не пытался выполнить.
-
@xclsv Как то так
-
@Canine said in Как добиться 100% загрузки страницы.:
@xclsv Загрузку страницы в игнорировать ошибки и вставить переменную WAS_ERROR в IF и все это можно в отдельную функцию, если нужно много раз повторять, можно еще счетчик сделать, чтобы больше столики то раз не пытался выполнить.
Вот так? У меня почему-то break не срабатывает. Ищу ошибку )
-
@xclsv Cделайте в функцию отдельную, как я показал, так мне кажется легче
-
@Canine said in Как добиться 100% загрузки страницы.:
@xclsv Как то так
А, получится рекурсивная функция! Отличное решение!
-
@xclsv Можно перед этим установить переменную с номером и перед вызовом функции прибавлять и сделать условие если она больше например 100, то переходим к тому то действию или выдаем ошибку скрипта.
-
@Canine said in Как добиться 100% загрузки страницы.:
@xclsv Можно перед этим установить переменную с номером и перед вызовом функции прибавлять и сделать условие если она больше например 100, то переходим к тому то действию или выдаем ошибку скрипта.
Дада! Чтобы 3 раза попробовал, не получилось - до свидания. Отличное решение! Спасибо большое!
-
В процессе поисков пытался использовать функцию Ждать Загрузки URL. Она может как-то помочь тут? Зачем она вообще нужна?
-
@xclsv Такой функцией не пользовался, всегда ставил только это для полной загрузки страницы.
-
@Canine said in Как добиться 100% загрузки страницы.:
@xclsv Такой функцией не пользовался, всегда ставил только это для полной загрузки страницы.
Ну вот и я также. Помогает всегда за исключением случаев, когда удаленный сервер вообще не отдает ничего (404).