2014-05-29 3 views
0

У меня проблема с программой, над которой я работаю ... У меня есть слушатель для рабочего состояния веб-клиентов, так что когда state = SUCCEEDED, он будет продолжать работу с остаток кода.Как установить рабочее состояние WebEngine в SUCCEEDED

Проблема заключается в том, что на веб-сайте, который я загружаю, есть много объявлений и занимает несколько минут, чтобы состояние наконец достигло «SUCCEEDED».

Я планирую использовать таймер, но единственный способ вызвать слушателя - изменить состояние, можно ли каким-либо образом изменить рабочее состояние веб-узлов вручную?

что-то вроде:

webEngine.getLoadWorker().getState() = Worker.State.SUCCEEDED; 

Этот код, очевидно, не работает, но вы получите точку.

ответ

1
is there any way I could manually change the webengines worker state 

No. Состояние представляет состояние рабочего потока, который загружает страницу. Он изменяется только до SUCCEEDED, когда веб-страница (успешно) завершила загрузку.

Если вам не требуется, чтобы страница была полностью загружена, чтобы выполнить код, который вы хотите выполнить, тогда нет смысла использовать прослушиватель в рабочем состоянии для запуска кода (или, по крайней мере, не тот, который ждет состояния SUCCEEDED). Чтобы ответить на ваш вопрос, вам нужно определить логику, когда вы хотите, чтобы ваш код выполнялся. Если это не нужно выполнять, когда страница полностью загружена, когда сделать, вы хотите, чтобы она была выполнена?

Или, попросить то же самое другим способом, возможно: при каких обстоятельствах вы намерены изменить состояние загрузчика на SUCCEEDED? Почему бы просто не выполнить какой-либо код, который вы намереваетесь выполнить, вместо этого?

+0

Я понимаю вашу точку зрения. Моя программа очень зависит от этих слушателей (у меня есть 3 или 4 из них), так что, когда веб-страница загружается через веб-сайт, некоторые функции будут следовать, я не вижу большой возможности для этих слушателей. Спасибо за помощь, хотя, очень ценю. – user3513071

+0

Возможно, я мог бы использовать прослушиватель, и когда state = running, я мог бы создать таймер, который затем выполнит код через определенное время, но я чувствую, что это может быть ошибкой. – user3513071