我们的应用程序使用 wicket 1.5.2,到目前为止,我们已经使用 ajax 构建了很多页面,这使得页面是有状态的。我们在日志中注意到 NotSerializableException [NSE] 但忽略了它,因为它并没有真正破坏任何功能。现在我们开始注意到多个选项卡/窗口场景中的 ajax 问题。
假设我有页面 A 有一些 ajax 行为和页面 B。我加载页面 A,右键单击链接并在新选项卡中打开页面 B。现在,当我单击页面 A 中的 ajax 链接时,它会尝试重新绘制同一页面 [A]。在尝试调试时,我注意到它正在尝试根据页面 id 查找页面,并且由于页面存储中不会出现相同的页面 [请记住,由于没有存储页面而导致 NSE] 它创建了新的实例页面并重新绘制相同。
我知道正确的做法是让序列化成功,但这对我们来说需要一些时间,因为我们必须重新审视所有已实现的组件以确保我们解决这些问题。有没有其他快速和(有点)好的解决方案?
另一种选择是使用无状态 ajax 组件 [Jolira?] 使页面无状态 - 我不知道这将如何公平,但会尝试。同时,如果有人解决了这个问题,请告诉我。