目前我有一个这样的工作流程:
- 用户在文本区域中输入手机号码列表
- 用户选择提交表单的选项(非AJAX)
- 系统处理ID,在一个新页面中向用户显示带有所有手机号码的JSF2DataTable
- 系统继续按顺序(每次一个号码)检索每个手机号码的信息,并将其更新到DataTable中
目前,我不确定在步骤3显示DataTable之后,我应该做什么来实现步骤4。
请建议我或将我链接到您遇到的任何与我的要求类似的教程。
有几个选项可以执行4。一个独特的选择是让客户端发起更新还是让服务器这样做。
在第一种情况下,您将看到传统的AJAX,您可以使用AJAX轮询组件。PrimeFaces和RichFaces都有这样一个组件(分别为p:poll和a4j:poll)
默认情况下,AJAX请求是通过单个队列序列化的,因此"一次一个数字"的要求将自动得到满足。由于您只想轮询一次,因此应在收到结果后立即停止轮询。
另一种选择是让服务器将数据推送到客户端(有时称为反向AJAX)。在您的情况下,当带有手机号码的初始表的数据被提取时,您将立即异步查询所有额外的信息。一旦服务器检索到这些信息,就会将其发送到客户端的数据表中。您可以一个接一个地再次执行此操作,或者如果是一个查询,则一次更新整个表可能更高效。
对于push,PrimeFaces和RichFaces都有可用的组件(p:push与a4j:push)。
参见:
- http://www.primefaces.org/showcase/ui/ajaxPollHome.jsf
- http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=poll