Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
05.03.2014, 11:32
|
|||
---|---|---|---|
|
|||
WebBrowser не отдает страничку после Navigate (цепочка переходов) |
|||
#18+
Задача по парсингу сайта. Часть переходов - это подгрузка через Ajax данных на ту же страничку по ссылке, а часть переходов обычные уникальные ссылки. На каком-то из этапов после выполнения WebBrowser.Navigate (Url) WebBrowser просто ничего не отображает: белая страничка и все. Посмотрел где обрывается: в Navigating (событие перед началом навигации) еще заходит, а вот в уже в Navigated (после навигации) уже не попадает (естественно, в DocumentCompleted в этом случае так же не попадает). Виснуть может на любом из этапов цепочки переходов: первую страничку перехода отображает всегда, а вот начиная со второй, может произойти описанное выше, причем каждый раз это может быть вторая, третья или еще какая-то страничка при переходе. Попробовал проанализировать и увидел, что при парсинге аналогичного сайта, который обрабатывается как часики, в DocumentCompleted попадает обработка ссылки “about: blank”, а вот с этим проблемным сайтом в DocumentCompleted “about: blank” ни разу не было, может в этом проблема?... Вообщем буду признателен за советы. -- MS SQL SERVER 2008R2 (RTM) 10.50.1600.1 (X64) + C# .Net 3.5/4 + Delphi 5\7 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2014, 18:01
|
|||
---|---|---|---|
|
|||
WebBrowser не отдает страничку после Navigate (цепочка переходов) |
|||
#18+
кажется, проблема в том, что WebBrowser перейдя не первую ссылку дальше пытается переходить по следующим ссылкам не дождавшись загрузки предыдущих документов и из-за этого его в каком-то событии и клинит. DocumentCompleted очень простой: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
где nPage(); - метод, который содержит переход на следующую страницу. Получается, что nPage(); срабатывает когда предыдущая ссылка еще не полностью загружена, хотя по приведенному коду такого не должно происходить… ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2014, 19:36
|
|||
---|---|---|---|
|
|||
WebBrowser не отдает страничку после Navigate (цепочка переходов) |
|||
#18+
нет, не в DocumentCompleted дело ( ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.03.2014, 14:22
|
|||
---|---|---|---|
|
|||
WebBrowser не отдает страничку после Navigate (цепочка переходов) |
|||
#18+
интересное наблюдение: если перед проблемным сайтом автоматически в этом WebBrowser обрабатываются иные сайты, то зачастую ошибка не возникает. Можете что-то с Cookie в текущей сессии заставляет стопориться WebBrowser… прикрепил эмуляцию моей ошибки. После нескольких запусков скомпилированного *.exe-ника у меня начинает появляться белое окно WebBrowser без какой-либо информации, то есть он виснет. Может кто у себя попробовать, повторяется ли ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.03.2014, 17:57
|
|||
---|---|---|---|
|
|||
WebBrowser не отдает страничку после Navigate (цепочка переходов) |
|||
#18+
почитал о “временной петле” решения проблемы отслеживания подгрузки данных через AJAX. Часто еще совершенствуют такой подход тем, что в событии таймера Tick проверяют дополнительно наличие на странице некого элемента, но способ не универсальный и требует фактически программирование каждой из загружаемых страниц. 2. Кроме того, добавление Код: c# 1. 2. 3. 4.
снизило на порядок частоту возникновения проблемы. Вывод сделал такой: суть проблемы – это отсутствие на текущий момент в webBrowserMain_DocumentCompleted универсального кода проверки загрузилась ли страничка полностью или нет (через AJAX). За такой вердикт говорит то, что применение “временной петли” значительно уменьшает частоту возникновения проблемы. Если же кто-то поделится универсальным кодом для DocumentCompleted проверки полной загрузки страницы (наверное, через AJAX), то будет здорово. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&tablet=1&tid=1403158]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
35ms |
get tp. blocked users: |
2ms |
others: | 327ms |
total: | 460ms |
0 / 0 |