{ Map attributes = new HashMap<>(); //attrib-6ren">
gpt4 book ai didi

java - 我将如何连续呈现 FTL 页面,比如说更新?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:31:38 25 4
gpt4 key购买 nike

假设我有以下 Java 代码。

get("/", (request, response) -> {
Map<String, Object> attributes = new HashMap<>();

//attributes.put("message", "Hello World!");

return new ModelAndView(attributes, "index.ftl");
}, new FreeMarkerEngine());

那是来自 Spark。当我导航到 localhost:portnumber/时,我看到呈现的 index.ftl,我们假设(此处未编码)显示来自该应用程序数据库的数据。但是假设我想动态更新 index.ftl。假设另一个用户从应用程序的另一个实例更新了数据库(此处未编码),我想在第一个用户的页面上显示 index.ftl 中的新更改。如何在不必重新呈现页面的情况下完成此操作?

您不能只是简单地在 Java 端设置一个计时器,它每 10-20 毫秒提取一次新数据。这也将是对连接时间的巨大浪费。 Java 代码能否以某种方式被 ping 到数据库已更新?就像数据库的监听器一样?

这不仅是个问题,而且您如何才能将新接收的数据推送到 index.ftl 而无需重新渲染?

最佳答案

您可以使用 COMET 将数据推送到浏览器

您可以使用多种不同的 COMET 技术来实现这种效果。我找到了一个很comprehensive article有助于在它们之间进行比较和选择。


使用 COMET 后,您可以 utilize this trick这样您只刷新 <div> 中的内容标签


另一个reference

关于java - 我将如何连续呈现 FTL 页面,比如说更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40062796/

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