PDA

Просмотр полной версии : Как узнать вес HTML-странички без загрузки



dr.Jekill
22.10.2009, 03:00
Возникла необходимость в узнавании размера HTML-страницы без её загрузки. Может кто поможет советом?

Duncon
22.10.2009, 10:00
Никак не узнать, + странички тянутся, подробней расскажи. Как вариант просчитать 1 раз и записать в базу и от туда брать..

dr.Jekill
22.10.2009, 10:50
Посоветовали, следующее на InDy

idhttp.head(<адрес>);
idhttp.response.length;//размер содержимого адреса

Я работаю с WebBrowser, но кажется придется переписывать
Суть проблемы такова: есть список URL, по срабатыванию таймера необходимо, поочередно брать каждый и проверять изменился ли размер страницы, если да увеличить счетчик. Причем все страницы динамические и являются результатами работы скриптов. Вот столкнулся с такой проблемой, буду благодарен за любую помощь.

Игорь Акопян
22.10.2009, 11:20
страница со скриптом могла и не меняться, а вот результат будет другим, так что имхо - никак

BBB
23.10.2009, 15:33
Можно попробовать по HTTP-протоколу прочитать дату последней модификации и размер странички (URL-а).
Но тонкость в том, что не все URL-ы дают ответ на запрос этих параметров.

dr.Jekill
25.10.2009, 02:50
Нашел такую процедуру (http://forum.developing.ru/showthread.php?p=74205#post74205) на С++ с сокетами. Наверно, придется в тех случаях, когда не получится определить Content-Length или Last-Modified, каждый раз заливать страничку.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
A если вызвать InternetOpenUrl, а потом сразу InternetQueryDataAvailable?

dr.Jekill
03.11.2009, 22:43
Разобрался сделал через InternetQueryDataAvailable, так же можно через HttpQueryInfoW. В rsdn есть подробное описание с примерами на Delphi.

atavin-ta
09.11.2009, 10:59
Самый тупой вариант: загрузить и выбросить. А когда нужна завтрашняя дата, ставить делэй на сутки, потом читать дату. Надеюсь, ты такие варианты не принимаешь?