AjaxFormValidatingBehavior性能和Lost专注于Firefox

时间:2012-05-14 13:49:15

标签: ajax treeview wicket

我的项目正在使用Wicket的 AjaxFormValidatingBehavior 将表单内容自动保存到Session,其中包含一个带有树状菜单的多标签表单(单个选项卡上没有保存按钮,但有一个实际提交表单的“保存”按钮,运行验证并将内容保存到数据库中。我面临一些问题:

  1. 由于行为被添加到所有表单组件的 onChange 事件中,因此每次用户从一个字段移动到另一个字段时都会发生服务器跳转。我知道可以指定一个节流持续时间来防止这种情况,但由于我的表单具有不同的长度/复杂性,动态生成许多组件(包括树状菜单),因此无法在我的情况下进行设置。但是有一个更优雅的解决方案来自动保存表单内容(没有提交按钮)而不是这个烦人的解决方案。

  2. 我面临的另一个问题是发布 onChange 事件,在Firefox上,组件在“服务器之旅”结束后失去焦点。在IE7上它可以正常工作。

1 个答案:

答案 0 :(得分:0)

对于第一个问题,我认为您需要添加流水线设施,在您的组件“onchange上调用您调用webapp的javascript函数。您可以包含类似于提供节流持续时间但页面范围的功能(延迟每个调用,如果它早于x毫秒,则仅触发最后一个)。

对于第二个,我认为你必须在你的行为中使用AjaxRequestTarget#focusComponent,或者在你的“包装器”中处理这个事情,如第一个答案中所述。