【发布时间】:2015-02-25 14:08:36
【问题描述】:
问题
我想在 JS 事件上单独重新渲染 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" />
最后一种方法看起来最有希望,因为函数是异步的(它们立即返回),但请求似乎都在一个队列中,并且它们是按顺序处理而不是并行处理的。
【问题讨论】: