gpt4 book ai didi

ajax - 当对象改变其状态时触发 Ajax 事件

转载 作者:行者123 更新时间:2023-12-02 20:10:08 26 4
gpt4 key购买 nike

我有一个小型大学项目,我必须在其中展示某些算法是如何工作的。决定将 JSF 用于一个简单的 Web 应用程序,并将所有算法生成的数据保存到数据库中。

我心想,‘嘿,如果我能向用户展示算法如何一步一步地工作,那就太酷了,没什么花哨的,只是简单的格式化文本,当算法完成它的工作时,这些文本会发生变化。使用 Ajax 的输出文本字段应该可以完成工作!',但我无法完全解决某个问题。 Ajax 在发生特定事件(例如“click”或“keyup”)时触发,但是有没有办法让它在 ManagedBean 类中的对象发生更改时触发?

不知道我解释得是否足够好,所以这是我想做的一个例子:

  1. ManagedBean 中的 ArrayList 为空,输出文本不打印任何内容
  2. 经过一定时间后,ArrayList 中会保存一个新对象,Ajax 会触发,outputtext 会打印出其 onString()
  3. 再次经过一定时间后,更改之前打印出的同一对象,Ajax 会触发,输出文本也会相应更改

如果问题不太清楚,我很抱歉,请尽我所能描述它。

最佳答案

您所描述的不再是经典的客户端触发的 AJAX,而是称为 server-sent events (上海证券交易所)。它们通常使用长轮询(周期性的客户端请求,只有在存在服务器端事件时才得到答案)来实现。

您最喜欢的 JSF 工具包可能以“Push”的名义支持它。这是 Primefaces example .

但是,对于您的简单用例,我建议改用轮询。请参阅this example 。主要区别在于您的服务器端逻辑切换以保留“要显示的”字符串/ID/对象的列表。当您的浏览器客户端轮询服务器(调用监听器方法)时,将第一项分配给支持 bean 中的 String 字段,并让您的客户端重新渲染该 String 显示。

请注意,您可以在普通 JSF-2 中执行此操作,不需要 Primefaces。

关于ajax - 当对象改变其状态时触发 Ajax 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26431276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com