Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 通过AJAX更新JSF2数据表_Jsf 2_Datatable - Fatal编程技术网

Jsf 2 通过AJAX更新JSF2数据表

Jsf 2 通过AJAX更新JSF2数据表,jsf-2,datatable,Jsf 2,Datatable,目前我有这样一个工作流: 用户将手机号码列表输入文本区域 用户选择提交表单的选项(非AJAX) 系统处理ID,在新页面中向用户显示一个JSF2数据表,其中包含所有手机号码 系统继续按顺序检索每个手机号码的信息(一次一个号码),并将其更新到数据表中 在第3步显示DataTable之后,目前我不确定应该如何实现第4步 请告知我或将我链接到你们许多人遇到的与我的要求类似的任何教程。有两个选项可供选择4。一个独特的选择是让客户端启动更新还是让服务器启动更新 在第一种情况下,您将看到传统的AJAX,您可以

目前我有这样一个工作流:

  • 用户将手机号码列表输入文本区域
  • 用户选择提交表单的选项(非AJAX)
  • 系统处理ID,在新页面中向用户显示一个JSF2数据表,其中包含所有手机号码
  • 系统继续按顺序检索每个手机号码的信息(一次一个号码),并将其更新到数据表中 在第3步显示DataTable之后,目前我不确定应该如何实现第4步


    请告知我或将我链接到你们许多人遇到的与我的要求类似的任何教程。

    有两个选项可供选择4。一个独特的选择是让客户端启动更新还是让服务器启动更新

    在第一种情况下,您将看到传统的AJAX,您可以使用AJAX轮询组件。PrimeFaces和RichFaces都有这样一个组件(分别是p:poll和a4j:poll)

    默认情况下,AJAX请求通过单个队列序列化,因此“一次一个数字”的要求将自动得到满足。由于您只想轮询一次,因此应在收到结果后立即停止轮询

    另一个选项是让服务器将数据推送到客户端(有时称为反向AJAX)。在您的情况下,当获取带有移动号码的初始表的数据时,您将立即异步查询所有额外信息。一旦服务器检索到该信息,就会将其发送到客户机中的数据表。您可以一个接一个地再次执行此操作,或者如果是一个查询,则一次更新整个表可能更有效

    对于push,PrimeFaces和RichFaces都再次提供了组件(p:push与a4j:push)

    见:


    你好,Arjan,感谢您的回复。它对每个数字的处理包括与多个外部系统的接口,每个系统可能需要几秒钟才能完成,因此需要根据每个数字更新用户,以获得更好的用户体验。我会快速查看你的链接,我也在使用Primefaces组件库。只是想知道,你认为Primefaces推送更新数据表是可能的吗?从推送示例中可以看出,他们正在使用JavaScript手动处理推送事件。理论上你可以混合使用RichFaces和PrimeFaces,但既然有一个民意测验解决方案,你最好使用它。