【问题标题】:How to set WebEngine worker state to SUCCEEDED如何将 WebEngine 工作状态设置为 SUCCEEDED
【发布时间】:2014-05-29 00:20:29
【问题描述】:

我正在处理的程序有问题...我有一个 webengines worker 状态的侦听器,因此当 state = SUCCEEDED 时,它将继续执行其余代码。

问题是我正在加载的网站有很多广告,并且需要几分钟才能使状态最终达到“成功”。

我打算使用计时器,但触发侦听器的唯一方法是如果状态发生变化,我有什么办法可以手动更改 webengines worker 状态?

类似:

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

这段代码显然不起作用,但你明白了。

【问题讨论】:

    标签: javafx listener state worker javafx-webengine


    【解决方案1】:
    is there any way I could manually change the webengines worker state
    

    没有。状态表示正在加载页面的工作线程的状态。只有当网页(成功)完成加载时,它才会变为SUCCEEDED

    如果您不需要页面完全加载来执行您想要执行的代码,那么在工作状态上使用侦听器来触发代码是没有意义的(或者,在至少,不是等待SUCCEEDED 状态的人)。要回答您的问题,您需要确定希望执行代码时背后的逻辑。如果页面完全加载后不需要执行,你希望什么时候执行

    或者,换一种方式问同样的事情,也许:在什么情况下你打算将负载工作人员的状态更改为SUCCEEDED?为什么不直接执行您打算执行的任何代码呢?

    【讨论】:

    • 我明白你的意思。我的程序非常依赖这些侦听器(我有 3 或 4 个),因此当通过 web 引擎加载网页时,某些功能会随之而来,我看不出拥有这些侦听器的方法。不过感谢您的帮助,非常感谢。
    • 我想也许我可以使用监听器,当 state = running 时,我可以创建一个计时器,然后在一定时间后执行代码,但我觉得这可能是错误的。
    猜你喜欢
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 2017-11-17
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    相关资源
    最近更新 更多