Ожидание появления элемента (код C#) или POST/GET запрос

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 106
Баллы
113
Для загрузки файла на сайт используется браузер. После добавления файла, идет его загрузка/обработка на сайте.
Нужно ждать появления ссылки на загруженный файл. Это можно сделать двумя способами:

1. С помощью кода ожидания появления элемента
Код:
HtmlElement he;
for(int i=0; i<20; i++)
{
    he = instance.ActiveTab.FindElementByAttribute("Параметры");
    if(!he.IsVoid)
    {
    // Получаем ссылку
    }
    System.Threading.Thread.Sleep(2000);
}
2. POST/GET запросом на проверку загрузки, где ответом будет небольшой json. И если файл загружен, парсить ссылку из кода страницы или get'ом.

Подскажите, пожалуйста, что целесообразнее использовать с точки зрения ресурсозатрат? Нигде не нашел, как вообще работает код ожидания, по какому принципу?
 

Tiburon20

Client
Регистрация
14.03.2010
Сообщения
8
Благодарностей
1
Баллы
3
Думаю, по ресурсам на GET будет лучше, тк искать элемент на странице надо будет только один раз, а не ~ 20. Но, скорее всего, разница не будет заметна, зато код станет менее прозрачным.
 
  • Спасибо
Реакции: Dimionix

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 106
Баллы
113
Думаю, по ресурсам на GET будет лучше, тк искать элемент на странице надо будет только один раз, а не ~ 20. Но, скорее всего, разница не будет заметна, зато код станет менее прозрачным.
Немного дополню по второму варианту.
Если в ответе приходит, что файл еще грузится/обрабатывается, то ожидание 2000 мс., если ответ положительный - получаем ссылку следующим шагом (т.к. в ответе нет ссылки). Т.е. тоже цикл.
PS. Второй вариант полностью на C#.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 106
Баллы
113
Up
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)