Измерение размера веб-страницы - PullRequest
0 голосов
/ 15 марта 2011

У нас есть приложение WPF, созданное в .Net Framework 3.5 SP1, используемое для отображения различных веб-приложений.Приложение WPF использует элемент управления веб-браузера для отображения веб-страниц различных приложений.

Мы используем эти веб-страницы для измерения времени отклика и других параметров, из которых размер страницы является важным параметром.

Приведенный ниже код описывает, как мы получаем доступ к размеру страницы.

void wbEvents1_DocumentComplete(object pDisp, ref object URL)

{  objInstrument.PageSize = Convert.ToInt32(((mshtml.HTMLDocumentClass)(((SHDocVw.IWebBrowser2)pDisp).Document)).fileSize);

}

Но здесь мы сталкиваемся со следующими проблемами:

  1. Мы можем получить только размер файла объекта Document, то есть размер только загруженного HTMLбез размера связанных с ним ресурсов, таких как (.css; .js; .img и т. д.). Нам нужен целостный размер страницы документа HTML, включая все объекты ресурсов в HTML (.css; .js;.img и т. д.).

  2. Также в случае, если загруженная страница имеет в заголовке какой-либо из следующих параметров;IE не возвращает никакого значения для атрибута fileSize.

    Cache-Control = no-cache

    Pragma = no-cache

Запрос о помощи в решении 2 вышеуказанных проблем, с которыми мы сталкиваемся в ближайшее время.

1 Ответ

0 голосов
/ 17 марта 2011

Это не прямой ответ, но, возможно, вы могли бы рассмотреть возможность извлечения рассматриваемых веб-страниц через локальный прокси-сервер, который мог бы отслеживать и обрабатывать весь трафик и передавать его обратно в родительское приложение через IPC, если он запущен вне процесса.

Размещение прокси между браузером и сетью даст вам точное и полное измерение количества переданных байтов, времени, потраченного на каждый запрос и т. Д. Вероятно, существует множество существующих решений для мониторинга, которые разбивают трафик по типам объектов и т. Д. или вы можете написать свой собственный анализ с учетом необработанной информации от прокси. Возможно, Squid + плагин анализатора лог-файлов или адаптация существующего прокси для сбора необходимой статистики (в духе CharlesProxy ).

Чтобы настроить браузер для управления прокси-сервером, вы можете использовать InternetSetOption () (есть пример).

...