在 Seam 参考指南中,可以找到以下段落:
我们可以在 components.xml 中为并发请求超时(以毫秒为单位)设置一个合理的默认值:
<core:manager concurrent-request-timeout="500" />
然而,我们发现 500 毫秒对于我们必须处理的大多数情况来说还不够,尤其是在对话访问受到严格限制的情况下。
在我们的应用程序中,我们结合了页面范围的 ajax 请求(由各种用户操作触发)、一些全局范围的轮询通知逻辑(标题的一部分,因此包含在每个页面中)以及调用操作和/或导航到其他页面的常规链接页。
因此,即使网站上没有任何显着负载,我们也会经常以可怕的方式并发访问对话异常。
在研究了相当多的选项之后,我们最终将这个值提高到了几秒钟(我们正在讨论是否将其提高到 10 秒),因为没有一个推荐的解决方案似乎能够完全解决我们的问题(甚至强制一个全局当我们的一个轮询调用正在进行时,所有 ajax 请求的队列仍然会让我们暴露在用户决定单击链接的情况下)。我们更愿意让用户等待一两秒钟,而不是仅仅因为他们在错误的时刻点击了链接而得到错误页面。
现在的问题是:我们是否缺少一些明显的东西(例如一种允许并发访问对话并处理我们自己所需的锁定的方法,例如:)?人们如何在 seam 中解决这个问题(ajax 请求与用户驱动的交互混合)?在 ajax 请求正在进行时禁用页面上的所有链接(如一个博客页面所建议的那样)实际上不是一个可行的选择。
还有其他建议吗?
TIA,安德烈