首页 > 解决方案 > 如何在不刷新页面的情况下动态更改 html 中的 spring mvc 变量?

问题描述

我有,例如服务器端 Spring Web 服务实现

model.addObject("someData", dataString);

例如,调度程序每分钟调用一次。

然后在 html (javascript) 端

funtion timelyUpdate(){
    let dataStr = "[[${someData}]]";
    console.log(dataStr);
}
setInterval(function(){timelyUpdate()}, 6000);

在服务器端,变量被刷新并更新,但在 html 端没有任何变化。我怎样才能使它每次通过 setInterval() 更新 javascript 代码时,它也会更新 spring 变量而不刷新页面?

标签: javascriptspringspring-mvcthymeleaf

解决方案


您必须创建一个休息服务,然后开始在您的网页中使用该休息服务。例如如何做https://spring.io/guides/gs/rest-service/

但这只有在您知道服务器中的刷新率时才有效。否则,您可能不得不使用 pub/sub 架构。

您可能可以使用一个框架来完成繁重的工作,但同样取决于您要做什么,即使池化也可能会起作用。https://cometd.org/是一个可扩展的 Web 消息传递框架,如果您想试用的话!


推荐阅读