有时关闭ModalWindow消息"你想离开或留下......"弹出。
我无法确定原因。例如,我关闭窗口10x(仍然以相同的方式),其中一些尝试最终导致此失败。
没关系,但父页面会再次构建,所有数据都会丢失,这不是用户友好的。
我的项目规范:
- Wicket:6.21.0
- Java:8
- Spring:4.1.1.RELEASE
- 和其他(我希望不相关的依赖)
到目前为止,我已经做过,尝试或探索过:
- 当关闭模态窗口并发生错误时,将再次构建父页面
- 发生错误时,不会调用关闭回调
- modalWindow.showUnloadConfirmation(false) - 不起作用。确认窗口没有显示,但是当窗口关闭时,父页面被重新加载并且数据消失
- 将wicket更新到最新的6.24版本或Spring 4.1.6没有帮助
- 降级到检票口6.1.9没有帮助
- 升级到wicket 7.4没有帮助
- 发生错误 NOT 时,ModalWindow Page例如由http 8443 exec 5线程生成,而回调由 捕获同一线程
- 发生错误时,ModalWindow Page例如由http 8443 exec 5 线程生成,但失败时,新的父页面由http 8443 exec 9 线程创建示例
- 在调用window.close()清除和分离所有数据提供者之前,也没有帮助添加关闭按钮
- 当模态窗口失败时,javascript中的window.close()方法是最后一件事,即调用。之后没有代码被调用。之后可能会重定向到父页面(这就是“你想离开这个页面确认对话框的原因”)。
- 以上所有内容都可以通过创建新的Java类进行测试,该类扩展ModalWindow并覆盖受保护的方法String getCloseJavacript(),它返回String形式的结束JavaScript代码。
解
问题是当父页面加载数据时,页面大小很大,要存储到Wicket页面缓存内存中。因此,当关闭模态窗口时,应该加载保存的父页面,但它从未保存过,因此生成了新页面。 Wicket页面缓存内存的大小,可以在WicketApplication类中设置。更多位于页面缓存部分的
https://ci.apache.org/projects/wicket/guide/6.x/guide/versioningCaching.html。