【问题标题】:Wicket page destroy event检票页面销毁事件
【发布时间】:2014-05-16 12:41:27
【问题描述】:

我有一个常规检票口页面,当我们离开该页面或页面被破坏时,我需要捕捉和事件。

我试图覆盖所有合理的发声方法,但没有一个被触发。

有没有简单的方法来做到这一点?将页面注册到某个侦听器也可以。

非常感谢!

【问题讨论】:

  • 销毁是什么意思?在请求之后,页面被提供给用户,然后被缓存和序列化。你想对页面做什么?
  • 毁灭可能是一个愚蠢的词,我承认。假设我想在离开页面或打开任何其他页面时捕捉事件。关键是一旦我们离开页面,我需要运行一些服务器端代码。我欢迎任何解决方案。
  • 这个比较棘手,有一些讨论here也许能帮到你
  • 我相信在尝试检测用户何时试图离开时有太多警告。例如,用户在新页面中打开链接或用户失去连接等。如果可以的话,我强烈建议您尝试寻找一种替代解决方案来倾听用户离开的声音。

标签: java apache servlets wicket


【解决方案1】:

我想我会在这里发布解决方案,所以我们也有一个关于 SO 的解决方案。

private class ProcessAfterCloseBehavior extends AbstractDefaultAjaxBehavior {
        @Override
        public void renderHead(Component component, IHeaderResponse response) {
            super.renderHead(component, response);
            response.render(new OnDomReadyHeaderItem("window.onbeforeunload = function (e) {"
                    + getCallbackScript() + "};"));
        }

        @Override
        protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
            attributes.setAsynchronous(false);
        }

        @Override
        protected void respond(AjaxRequestTarget target) {
            //Do whatever you need to do.
        }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    相关资源
    最近更新 更多