【发布时间】:2011-02-08 09:59:36
【问题描述】:
我有非常有状态的页面,其中包含大量 AJAX 组件。这些组件中的大多数都具有行为,这些行为将用于调用 AJAX 请求的 JavaScript 代码呈现给 Java 代码。因为页面不是无状态的,每个请求都会导致页面序列化。到目前为止一切顺利。
但其中一些 AJAX 请求永远不会更改页面,因此不需要对页面进行序列化。例如,它是(自制)数据网格组件的前向缓存数据。这些请求不断调用,并且在每个请求期间对页面进行序列化会导致延迟。
有一些无状态检票口组件的项目,例如wicket-stateless,但它解决了另一种情况——无状态组件的请求在无状态页面的新实例上处理。我想处理现有有状态页面实例上的请求,但没有序列化。
我尝试在自己的RequestCycleProcessor.resolve() 中实现这一点,但我一直在从 requestParameters 搜索页面,因为Session.getPage() 总是触摸页面并在请求处理后导致序列化。
- 是否有任何示例、想法或任何用于在 Wicket 中实现此功能的方法?
希望可以理解:)
【问题讨论】:
-
我也想做这个。我拥有它,因此具有此 AJAX 行为的组件的唯一 ID 可以为我的代码提供回调所需的所有“状态”信息。可以使用
AjaxRequestTarget.getLastFocusedElementId()访问唯一 ID。但是我还没有弄清楚如何防止页面刷新。 -
我发现了同样的问题,你解决了吗?
标签: java wicket behavior stateless stateful