Java-从应用程序刷新打开的html页面
我有一个应用程序,可以从应用程序(我使用)创建html页面。之后,我使用桌面打开应用程序生成的网页,如下所示:Java-从应用程序刷新打开的html页面,java,html,freemarker,Java,Html,Freemarker,我有一个应用程序,可以从应用程序(我使用)创建html页面。之后,我使用桌面打开应用程序生成的网页,如下所示: public void openPage() { if (Desktop.isDesktopSupported()) { try { File file = new File("index.html"); Desktop.getDesktop().open(file);
public void openPage() {
if (Desktop.isDesktopSupported()) {
try {
File file = new File("index.html");
Desktop.getDesktop().open(file);
} catch (IOException ex) {
System.out.println("Error opening a html page.");
ex.printStackTrace();
}
}
}
现在,我的问题是:有没有办法从我的应用程序刷新页面?我正在动态更改内容,并希望每隔几秒钟刷新浏览器中的页面
还是只在后台更新页面并使用javascript直接在html代码中刷新页面更好
谢谢你的提示
编辑:请注意,我希望通过该网页上的某种形式与java应用程序通信(例如发送参数以指定页面的更新方式)使用AJAX技术(非常适合您的需要)在应用程序中调用服务器端控制器。然后,您可以协商是否需要数据更新。为此,建议使用JSON API。您可以在Java代码中使用进行与JSON相关的操作
为了节省带宽,您可以只轮询一个
布尔值
来确定服务器自上次更新以来是否有新数据(例如,提供since=[some_timestamp]
作为请求参数),并仅在有意义的情况下查询实际数据(即服务器返回true
).在网页中使用ajax进行部分页面更新更好option@MehulKaklotar此外,只查询数据而不使用任何形式的表示逻辑或元数据(即返回纯JSON而不返回HTML)是一种可行的方法。您可以使用修改后的自报头或ETag发出请求,而不是轮询布尔值。如果在服务器上实现,它将返回304 not modified响应,您可以在浏览器中处理该响应。这将非常酷,但您的业务逻辑不应该依赖于它运行的服务器。当然,你也可以对修改后的自个头的“业务逻辑等价物”进行投票,但我这里的观点是建议一个可能的解决方案,而不是全部列出:)欢迎你在帖子中添加任何有建设性的内容。