JSF RichFaces a4j 并行 ajax 调用
JSF RichFaces a4j parallel ajax calls
问题
我想在 JS 事件上单独重新呈现 parts/elements JSF 页面。我可以很容易地附加一个
<a4j:ajax render="one two three" />
给事件发布者或使用
<a4j:jsFunction render="one two three" name="load" />
但是这些方法只发出一个请求并在服务器响应后呈现所有内容。我想要的是并行请求和异步渲染。
到目前为止我尝试了什么
多个ajax个元素
我已经尝试使用多个 ajax 元素,每个元素具有不同的渲染属性值,但通过这种方式我得到 X 请求和响应,它们都包含需要重新渲染的所有元素的数据:
<a4j:ajax render="one" />
<a4j:ajax render="two" />
<a4j:ajax render="three" />
多个jsFunction元素
使用多个 jsFunction 在单独调用和单独渲染的意义上有效,但请求仅在最后一个请求得到响应后发出,这更像是顺序加载(我使用浏览器开发工具进行了测量):
<a4j:jsFunction render="one" name="loadOne" />
<a4j:jsFunction render="two" name="loadTwo" />
<a4j:jsFunction render="three" name="loadThree" />
最后一种方法看起来最有希望,因为函数是异步的(它们 return 立即),但请求似乎都在一个队列中,并且它们是按顺序处理的,而不是并行处理的。
在这里恢复一个老问题...
长话短说:这是不可能的,因为 JSF 是严格顺序的。期间.
问题
我想在 JS 事件上单独重新呈现 parts/elements JSF 页面。我可以很容易地附加一个
<a4j:ajax render="one two three" />
给事件发布者或使用
<a4j:jsFunction render="one two three" name="load" />
但是这些方法只发出一个请求并在服务器响应后呈现所有内容。我想要的是并行请求和异步渲染。
到目前为止我尝试了什么
多个ajax个元素
我已经尝试使用多个 ajax 元素,每个元素具有不同的渲染属性值,但通过这种方式我得到 X 请求和响应,它们都包含需要重新渲染的所有元素的数据:
<a4j:ajax render="one" />
<a4j:ajax render="two" />
<a4j:ajax render="three" />
多个jsFunction元素
使用多个 jsFunction 在单独调用和单独渲染的意义上有效,但请求仅在最后一个请求得到响应后发出,这更像是顺序加载(我使用浏览器开发工具进行了测量):
<a4j:jsFunction render="one" name="loadOne" />
<a4j:jsFunction render="two" name="loadTwo" />
<a4j:jsFunction render="three" name="loadThree" />
最后一种方法看起来最有希望,因为函数是异步的(它们 return 立即),但请求似乎都在一个队列中,并且它们是按顺序处理的,而不是并行处理的。
在这里恢复一个老问题...
长话短说:这是不可能的,因为 JSF 是严格顺序的。期间.