Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在基于Java的网站上动态更新图形_Java_Javascript_Ajax_Html - Fatal编程技术网

在基于Java的网站上动态更新图形

在基于Java的网站上动态更新图形,java,javascript,ajax,html,Java,Javascript,Ajax,Html,我目前正在端口8080上设置一个基于本地主机的web应用程序。这个应用程序与我的Java服务器应用程序一起提供,用于显示与服务器相关的统计信息。我目前正在使用一个基本的JavaGUI来显示服务器的统计信息,但是我希望通过可视化的数据表示从web访问它 我将使用的图表如下所示: 油炸圈饼图 填充线图 图形显示的信息需要每秒更新一次。这些图形将显示的信息包括服务器当前网络I/O、当前RAM使用情况、当前CPU使用情况、服务器运行的线程数量、线程的处理时间等 如前所述,我已经将所有这些信息以基于文

我目前正在端口8080上设置一个基于本地主机的web应用程序。这个应用程序与我的Java服务器应用程序一起提供,用于显示与服务器相关的统计信息。我目前正在使用一个基本的JavaGUI来显示服务器的统计信息,但是我希望通过可视化的数据表示从web访问它

我将使用的图表如下所示:

  • 油炸圈饼图
  • 填充线图
图形显示的信息需要每秒更新一次。这些图形将显示的信息包括服务器当前网络I/O、当前RAM使用情况、当前CPU使用情况、服务器运行的线程数量、线程的处理时间等

如前所述,我已经将所有这些信息以基于文本的格式发送到GUI

我在查看图表的API时遇到的最大问题是,它们都调用另一个网站(如google chart API),然后它生成一个图像,然后显示该图像。如果你的互联网连接可以远程保持,每秒这样做一次会破坏你的带宽

我个人想到的唯一解决方案是创建一个系统,在该系统中绘制图形的布局,然后让它使网站将图形上的点“连接起来”。然后我只需要更新图形上的点,然后再次调用draw函数,但是有两个问题

  • 我不知道该怎么做
  • 我不确定这个方法是否比GoogleChartAPI方法处理得更好

  • 我知道这是可能的,因为(竞争)SmartFoxServer等应用程序都使用它。示例图像:

    您可以轻松地使用一些开源JS图表库来实现这一点。好的选择:或


    您可以通过AJAX请求(5秒周期?)以JSON格式从服务器获取数据,并将其提供给图表库。您可以使用WebSocket从服务器触发更新,但这稍微有点困难。

    图形需要每秒更新一次,这对每秒生成一次JSON文件的IO来说不是很费力吗?此外,虽然这样可以在图形呈现时为图形提供新信息,但当用户仍在页面上时又如何呢?这些图表需要实时更新,你必须在服务器上合理地聚合/过滤数据。显然,您不希望每5秒向浏览器发送1 GB的数据,但1kB的数据绝对可以,对于图表来说应该足够了。在服务器上生成JSON非常快,您不必担心这一点。“生成JSON文件”为什么要将其生成为文件?当您收到AJAX请求时,只需发送它作为响应。我将研究在下班后通过Javaservlet发送基于JSON的AJAX(在这种情况下分别是AJAJ,对吗?)响应。我会查看图书馆,看看能完成什么,谢谢你的回复。