powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Определить окончание загрузки веб-страницы
25 сообщений из 31, страница 1 из 2
Определить окончание загрузки веб-страницы
    #37904626
Genco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Возникла у меня проблема, которую костыльно решить несложно, а нормально — я пока не нагуглил. Программа у меня пока делает следующее:
открывает страничку в браузере по умолчанию или ином(не IE именно важно, это осложняет дело). После чего делает аккуратненький скриншот.

Код не привожу, он тривиальный, да и загвоздка не в нем, а в том, что скрин окна браузера делать логично в тот момент, когда страничка загрузится полностью. А навороченность её заранее, конечно, не известна. Потому решение поставить Sleep() в конец кода на самом деле очень ненадежное.

Из Javascript/PHP узнать, когда окончится загрузка легко, но доступа к этим возможностям из win32 приложения нет; компонент Delphi TWebBrowser (есть аналоги в других языках и библиотеках) умеет сообщать, когда загрузка завершается _внутри_него_, что сильно не тоже самое (компонент работает через IE).
Раскопки показали, что есть технология DDE устаревшая, которая небогато, даже хреново документирована для браузеров, но Chrome вот её не поддерживает совсем.
Точно ли поможет RegisterURLEcho (описание от MS) пока не успел проверить, т.к. хром тоже нужен.

На данный момент играюсь с задержкой и веб-компонентом, но хотелось бы добиться стабильного и надежного решения. Обидно же, ведь сам браузер момент загрузки ловит, неужели никак его "спросить" нельзя))
Буду благодарен, если кто подаст хоть какие-то идеи.
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37904643
Фотография BlackGnomeГуест
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Genco,

А взять размер из HTTP-заголовка ?
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37904645
Genco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эмм? размер?
Просто моя win32 программа - внешняя по отношению к браузеру. Условно говоря, будет делать скриншот загруженной страницы в окне браузера. Вопрос в том, можно ли как-то строго определить, что страница в этом браузере загрузилась , без задержки по времени.

Мне посоветовали сделать проксирующий сервер маленький, который будет как-либо модифицировать страницы, либо на худой конец замерять время загрузки грубо, но это немножко геморойно, неужели ничего попроще нельзя придумать?
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37904655
Фотография BlackGnomeГуест
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Genco,

если доступ к коду браузера есть (т.е. он самописный ) то http://www.interface.ru/home.asp?artId=8317
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37904657
Genco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ы, пасиб. Браузеры то обычные - opera, IE, chrom и т.д. Потому с исходниками как-то не очень, да и фоткать для сравнения хочу все.
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37904666
Фотография BlackGnomeГуест
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GencoЫ, пасиб. Браузеры то обычные - opera, IE, chrom и т.д. Потому с исходниками как-то не очень, да и фоткать для сравнения хочу все.



Тогда проксирующий сервер - ход мыслей верный, но и первый мой ответ тогда верен :)
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905169
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Миссия невыполнима, ибо загрузка страницы не прекращается с передачей html данных
В общем случае загрузка может не завершитья никогда(скрипты могут непрерывно освежать контент)
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905228
Фотография BlackGnomeГуест
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилМиссия невыполнима, ибо загрузка страницы не прекращается с передачей html данных
В общем случае загрузка может не завершитья никогда(скрипты могут непрерывно освежать контент)

Вы имеете ввиду все ити милые особености WEB 2.0 ? А если на большие размеры просто заточиться, должна же программа хоть немного думать?
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905257
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackGnomeГуестдолжна же программа хоть немного думать?
Чем?

Цикл обновления контента может бесконечным.(например - онлайн лента новостей, курсов , погоды и тп)
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905260
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вклячит OnLoad скрипт новый iframe - и что делать? что есть завершение загрузки?
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905326
Фотография BlackGnomeГуест
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилBlackGnomeГуестдолжна же программа хоть немного думать?
Чем?

Цикл обновления контента может бесконечным.(например - онлайн лента новостей, курсов , погоды и тп)

Есть такая весЧ - заголовок, кажется заголовки никто не отменял... Но тогда получится уже не "утилитка" :)
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905369
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackGnomeГуестЕсть такая весЧ - заголовок, кажется заголовки никто не отменял...
какое отношение имеет заголовок к выполнению скриптов на странице и загрузке iframe и изображений?
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905470
Фотография BlackGnomeГуест
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилBlackGnomeГуестЕсть такая весЧ - заголовок, кажется заголовки никто не отменял...
какое отношение имеет заголовок к выполнению скриптов на странице и загрузке iframe и изображений?

Может мы о разном, если делать проксирование, то через службу пройдёт и тип данных и предполагаемый размер
так?
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905511
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
BlackGnomeГуестИзопропилпропущено...

какое отношение имеет заголовок к выполнению скриптов на странице и загрузке iframe и изображений?

Может мы о разном, если делать проксирование, то через службу пройдёт и тип данных и предполагаемый размер
так?Веб-страница - это не только html, а еще и стили, скрипты, картинки, и т.д, которые загружаются отдельными запросами. А есть еще и ajax-запросы, которые выполняются позже. И есть такие сайты, где до выполнения ajax-запросов страница, с точки зрения пользователя, смотрящего в экран браузера, еще не полностью загружена. А есть такие сайты, где ajax-запросы выполняются неперывно, с целью обновления чата/новостей/биржевых котировок и т.п. И вот задача - как авроматически определить, когда страница полностью загружена, с точки зрения юзера, глядящего в экран.
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905583
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?А есть такие сайты, где ajax-запросы выполняются неперывно, с целью обновления чата/новостей/биржевых котировок и т.п. И вот задача - как авроматически определить, когда страница полностью загружена, с точки зрения юзера, глядящего в экран.А как вообще такая страница может быть "полностью загружена"? Это всё равно что открыть в плеере видеофайл и попытаться определить, "полностью ли он загружен" :)
Вот, кстати, задачка вам - открываете на тытрубе любое видео, начинаете смотреть... в какой момент страница будет "полностью загружена"? Когда хотя бы с этим определитесь, можно будет думать дальше :)
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905594
Фотография BlackGnomeГуест
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?BlackGnomeГуестпропущено...


Может мы о разном, если делать проксирование, то через службу пройдёт и тип данных и предполагаемый размер
так?Веб-страница - это не только html, а еще и стили, скрипты, картинки, и т.д, которые загружаются отдельными запросами. А есть еще и ajax-запросы, которые выполняются позже. И есть такие сайты, где до выполнения ajax-запросов страница, с точки зрения пользователя, смотрящего в экран браузера, еще не полностью загружена. А есть такие сайты, где ajax-запросы выполняются неперывно, с целью обновления чата/новостей/биржевых котировок и т.п. И вот задача - как авроматически определить, когда страница полностью загружена, с точки зрения юзера, глядящего в экран.

А у нас по-любому будет размер и теория нечеткуих множеств :)
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905605
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Ну не я автор вопроса, но с точки зрения "сделать аккуратненький скриншот"... Страничка с видео полностью загружена, когда начальные титры прошли :).

А еще на каких-то сайтах вешают рекламу на весь экран, и предлагается посмотреть ее ...дцать секунд или нажать кнопочку, в которую хрен попадешь. Деать скриншот видимо надо, когда рекламный баннер закроется.
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905635
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?,

,т.е. в текущей постановке задачи самая простая система, которая может определить, полностью или нет загружена страница - человек :)
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905638
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?А еще на каких-то сайтах вешают рекламу на весь экранА на ютубе реклама вообще "встроена" в ролик, что ещё сложнее автоматически отследить.\
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905718
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirА как вообще такая страница может быть "полностью загружена"? Это всё равно что открыть в плеере видеофайл и попытаться определить, "полностью ли он загружен" :)
Потоковое видео - так чётче будет
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37905736
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GencoЫ, пасиб. Браузеры то обычные - opera, IE, chrom и т.д. Потому с исходниками как-то не очень, да и фоткать для сравнения хочу все.
Попытка найти доказательство того что картинка в браузере ЗАГРУЖЕНА уведёт тебя к тезисам Курта Гёделя и т.д.
Поэтому ограничся таймером. Условно считаем что сайт загружен через 30 сек и там есть все слои и картинки.
И делаем скриншот. Дополнительно можно считать трафик и проверять что ключевые html-ки прогружены до упора.

Всё вобщем-то. Успехов.
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37906085
kengoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написать к каждому браузеру плагин, который изнутри оценивает степень "готовности" документа и передаёт некое событие вовне, где его видит внешняя софтина.
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37906108
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пол-царства за такой плагин. А особенно за способность объяснить его логику без эвристики и метафизики.
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37906482
Multy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Genco, зачем открывать страничку в браузере? TWebBrowser в Delphi, WebBrowser в Студии это по сути встроенный в программу IE.
WebBrowser.Document обеспечивает программный доступ ко всем элементам страницы.

DocumentCompleted конечно не очень надёжен. Свойства ReadyState и Url.AbsoluteUri могут несколько помочь.

Именно через него и удобнее всего разбирать странички, вплоть до выполнения скриптов и всего остального.
...
Рейтинг: 0 / 0
Определить окончание загрузки веб-страницы
    #37906519
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Multy,

замечательно, только это никак не отвечает на вопрос - что есть "завершение загрузки страницы"
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Определить окончание загрузки веб-страницы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]