Mar*_*ark 17 concurrency jsf cdi jsf-2 view-scope
我一直在谷歌搜索几个小时在这个问题上没有评估.
关于所提供示波器的线程安全性,WELD文档和CDI规范非常明确.
例如:
适用范围 - 不安全
会话范围 - 不安全
请求范围 - 安全,始终绑定到单个线程
会话范围 - 安全(由于WELD代理序列化来自多个请求线程的访问)
我在JSF 2.x定义的View Scope上找不到任何东西.
它与对话范围大致相同,因为尽管绑定到单个视图/用户,但多个请求很可能同时命中范围.我不知道的是JSF实现是否从多个请求序列化对bean的访问.
任何人都知道规格或Morraja/MyFaces的实施可以解决这个问题吗?
Bal*_*usC 17
视图范围与正常使用线程安全.它只能由一个浏览器窗口/选项卡使用.也就是说,它由在初始GET请求上设置的唯一隐藏输入字段键控.同一视图上的每个回发都将使用同一个视图范围的bean.浏览器本身已在同一窗口/选项卡中"同步"回发请求.新的浏览器窗口/选项卡实际上是一个新的GET请求,因此将创建一个新的完全独立的视图.
至于ajax回发,它们按规范排队.这在JSF 2规范的第13.3.2节中提到:
13.3.2 Ajax请求队列
所有Ajax请求必须在发送到服务器之前放入客户端请求队列,以确保按发送顺序处理Ajax请求.队列中等待时间最长的请求是下一个要发送的请求.发送请求后,Ajax请求回调函数必须从队列中删除请求(也称为出队).如果请求成功完成,则必须将其从队列中删除.如果出现错误,则必须通知客户端,但仍必须从队列中删除该请求,以便可以发送下一个请求.必须发送下一个请求(队列中最早的请求).
jsf.ajax.request有关Ajax请求队列的更多详细信息,请参阅JavaScript文档.
仅在使用PrimeFaces时,才能禁用排队<p:ajax async="true">.将此与视图范围bean结合使用时,必须以与会话范围bean相同的方式重新考虑threadsafety.
| 归档时间: |
|
| 查看次数: |
4942 次 |
| 最近记录: |