Аватар для XOTAB
19 / 18 / 5
Регистрация: 30.05.2010
Сообщений: 227
.NET 4.x

Дождаться выполнения обработки страницы

17.09.2016, 23:42. Показов 3796. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, ребят

Есть функция, которая парсит сайт и затем записывает нужную инфу в DataGridView. На моем компьютере все работает отлично. Но почему-то на других компьютерах функция работает, парсит все как нужно, но в DataGridView инфу не записывает (Выходит ошибка о не существовании нужного файла). Я грешу на медленную скорость интернета на других компах. Между загрузкой страницы в WebBrowser и ее парсингом стоит задержка в 5 секунд. Видать моего интернета достаточно что бы справится за 5 секунд, а вот на других все печально.

Вопрос 1:
Правильно ли я думаю? Или дело вовсе не в этом? Тогда в чем?

Вопрос 2:
Если я правильно думаю, то как сделать так, что бы парсинг не начинался пока страница не будет полностью загружена? Делать задержку в 5 или 10 секунд как-то не эстетично. Для кого то этого будет слишком много, а для кого то на оборот мало.

Вот сейчас так:
VB.NET
1
2
3
4
5
6
7
8
 WebBrowser1.Navigate("http://www.myscore.ru/soccer/")
        Dim sw As Stopwatch = Stopwatch.StartNew()
        While sw.ElapsedMilliseconds < 5000
            Application.DoEvents()
            Thread.Sleep(1)
        End While
        sw.[Stop]()
        File.WriteAllText(parsetmp, WebBrowser1.Document.Body.Parent.OuterHtml, Encoding.GetEncoding(WebBrowser1.Document.Encoding))
а нужно вместо цикла While вставить некую функцию, которая не даст дальнейшую обработку кода, пока не будет полностью загружена страница. Ну как то так...

Добавлено через 27 минут
Сделал так, но не работает почему то

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
        WebBrowser1.Navigate("http://www.myscore.ru/soccer/")
        PictureBox1.Visible = True
 
        Do While WebBrowser1.IsBusy = True
            Application.DoEvents()
        Loop
 
        File.WriteAllText(parsetmp, WebBrowser1.Document.Body.Parent.OuterHtml, Encoding.GetEncoding(WebBrowser1.Document.Encoding))
 
        DataGridView3.Rows.Clear()
        GetListMatches()
        PictureBox1.Visible = False
 
    End Sub
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.09.2016, 23:42
Ответы с готовыми решениями:

Дождаться полной загрузки страницы
Событие WebBrowser1_DocumentCompleted происходит очень много раз при загрузке определенной страницы. Как дождаться полной загрузки страницы...

Дождаться обновления web-страницы в Awesomium
Доброго дня! Как дождаться обновления web-страницы в Awesomium Страница загружается, затем имитирую клик мышки на определенной ссылке ...

Дождаться выполнения процедуры
Доброго времени суток! Есть таймер, в котором постоянно выполняется 30 процедур. Одна из процедур является ресурсоемкой, если точнее, то...

23
Модератор
Эксперт .NET
 Аватар для Yury Komar
4372 / 3442 / 512
Регистрация: 27.01.2014
Сообщений: 6,266
19.09.2016, 22:37
Студворк — интернет-сервис помощи студентам
XOTAB, Sklifosofsky, у меня и первый вариант загрузился.
0
 Аватар для Sklifosofsky
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
19.09.2016, 22:43
Yury Komar, да это кому как повезет, на слабой или загруженной программным хламом машине js работает медленнее относительно
1
 Аватар для XOTAB
19 / 18 / 5
Регистрация: 30.05.2010
Сообщений: 227
19.09.2016, 23:35  [ТС]
Но все равно не на всех компьютерах работает ((( почему блин так а? ((
0
 Аватар для Sklifosofsky
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
20.09.2016, 07:01
XOTAB, попробуйте сделать петлю (можно GoTo). Если парсер не отработал как надо, то надо вернуться к попытке собрать данные со странице (не перегружая её). А все таки на проверяемый компьютерах сперва проверьте права доступа перезаписи tmp.
Нужна конкретная ошибка
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.09.2016, 07:01

Дождаться закрытия всех форм и обработки действий
Такая ситуация: в цикле вызываю формы для построения графиков, у форм немного различаются наборы параметров, при закрытии каждой формы с...

А можно ли дождаться выполнения CreateThread ?
Здравствуйте, Решил немного с в winapi поиграться и понял, что мало че понимаю :) Вот взял самую простую функцию CreateThread: ...

Promise, как дождаться выполнения
Здравствуйте. Есть код, у меня вместо setTimeout идет запись в indexedDB, но это не должно менять суть вещей. console.clear(); ...

Дождаться выполнения сторонней программы (архиватора)
Приветствую. есть процедура которая архивирует папки и в последующем(после того как архивация будет завершена) должна запустить процедуру ...

Как дождаться выполнения асинхронной функции?
Привет, Есть проэкт Node.js+angular+typescript. И у меня есть функция: window.speechSynthesis.speak(new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

Новые блоги и статьи
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru