【发布时间】:2012-04-22 16:20:37
【问题描述】:
根据测试报告,如果响应呈现速度不够快,有时可能会多次按下按钮,从而导致多次调用后端代码,这是我们不希望的。
应用程序是在 Glassfish 3.1.1 中使用 JSF 2.0 的 Java EE 6 Web Profile。
我想知道应该如何正确处理这个问题,并想到了几个场景:
- 在呈现响应时,提交应禁用所有使用 javascript 的按钮。
- Session 范围内的一个标志表明它已经处于活动状态,因此敏感代码将被跳过并继续重新呈现上一次提交的响应。
- 延迟处理直到前一个请求完成的同步块。那么应该检测到已经被处理并跳过了。
- 使用转换等“新”作用域之一来处理检测?
我的直觉是,最好的方法是让敏感代码块原子化,但问题在于呈现正确的响应。
我应该如何处理这个问题?
【问题讨论】:
-
你尝试过类似 jQuery blockui 的东西吗?顺便说一句,同步块在集群上不起作用。
-
还没有尝试过。这是在“好吧,我该怎么做?”阶段。