Измерение размера веб-страницы

132
10

У нас есть приложение 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);

}


Но у нас есть следующие проблемы:


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


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


    Cache-Control = no-cache


    Pragma = no-cache


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

спросил(а) 2021-01-25T12:40:56+03:00 4 месяца, 4 недели назад
1
Решение
117

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


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

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

ответил(а) 2021-01-25T12:40:56+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема