我正在尝试将倒计时从 Java 应用程序同步到浏览器。倒计时可以随时停止、开始和重置。
我试图在 Vaadin 13 中实现这一点,但无法访问 UI 访问方法来锁定 vaadin 会话。现在我正在尝试使用本机 JS 和 Ajax 请求来实现这一点,但我不确定如何在不每秒发出 ajax 请求的情况下同步停止/启动和重置事件。
这是计数器的 Swing 实现
public void timer() {
Timer timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (seconds == 0 && minutes > 0) {
minutes--;
seconds = 59;
} else {
seconds--;
}
label.setText(minutes+":"+seconds);
repaint();
}
});
timer.start();
}
现在,我将为 JS 代码提供一个 Spring Boot Rest API,以询问剩余的分钟数和秒数。
setInterval(test, 1000);
async function test() {
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "http://10.0.1.17/countdown", false);
xhttp.send();
//console.log(JSON.parse(xhttp.responseText));
//Do Something with it
}
这似乎是一种不可靠且低效的方式
慕森卡
相关分类