PhantomJS: когда срабатывает onLoadFinished и может ли он срабатывать до завершения работы внешних ресурсов (например, изображений)?

Я загружаю некоторый HTML в объект WebPage и прослушиваю событие onLoadFinished. Когда onLoadFinished запускается, я отображаю веб-страницу в png.

Проблема, которую я вижу, заключается в том, что определенные изображения в содержимом HTML последовательно отображаются, когда я использую атрибут SRC, например http://example.com/image.png, но не отображается последовательно, когда я использую https://example.com/image.png в атрибуте SRC (как SSL, так и не SSL-варианты обслуживаются правильно, когда я обращаюсь к ним через браузер).

Проблема рендеринга связана с проблемой синхронизации? Может ли onLoadFinished срабатывать до загрузки изображений? Если да, то есть ли способ проверить, что изображения были загружены перед рендерингом в PNG?


person Andrew Theken    schedule 04.09.2012    source источник


Ответы (1)


Я заметил нечто подобное с PhantomJS. При очистке ссылок на нескольких страницах иногда два раза срабатывало событие onLoadFinished. Один был слишком рано, прежде чем все ресурсы были использованы. Мой обходной путь состоял в том, чтобы ждать код состояния для страницы на onResourceReceived и только после этого делать «onLoadFinished», когда срабатывает правильный (отклонить этот один ранний вызов).

person D3lity    schedule 10.09.2012
comment
Интересно, мне нужно будет проверить, является ли это частью уравнения. Спасибо за чаевые. - person Andrew Theken; 12.09.2012