当前位置: 首页 > 知识库问答 >
问题:

如何使用websocket从数据库获取数据来刷新视图

王棋
2023-03-14

我需要在不刷新整个页面的情况下刷新视图的一部分。

在我的索引中。html页面我有三个面板,其中一个按状态显示票证数量,每次创建或更新新票证时,我都需要刷新这个数字。我使用Java和Spring Boot以及Thymelaf来构建我的应用程序。

这是我的观点:

我现在就是这样做的:

model.addAttribute("resolvedTickets", atendimentoService.findAllTicketsByStatus(STATUS_RESOLVED).size());

我曾尝试使用websockets,但我不知道如何获得此功能并刷新面板。

共有1个答案

汪建德
2023-03-14

在标准的web交互中,客户端(即您的web浏览器)向服务器发送请求。您的服务器接收到请求,并发回要在浏览器中显示的信息,然后终止连接。

WebSocket是在客户端和服务器之间创建持久的双向连接的一种方式,但它需要双方的合作。许多共享服务器不允许WebSocket,因此您首先必须确保您的服务器能够提供WebSocket。(我从你的屏幕截图中看到你正在Heroku上运行,运行WebSocket应该没有问题。)

服务器端,您需要设置对传入WebSocket请求的处理。我不知道您用什么语言编写了服务器代码,所以我无法提供任何指导,但有很多库可以用大多数语言编写WebSocket的服务器端部分。

在客户端,您需要设置WebSocket客户端。MDN有一个关于WebSocket的很好的指南,解释了你需要做什么。基本上,你所要做的就是监听传入的消息并增加计数器。

var count = 0;
var exampleSocket = new WebSocket("ws://example.com/socket");
exampleSocket.onmessage = function(event) {
    count++;
    document.getElementById('myTicketCounter').innerHTML = count;
}

对于某些事情,WebSocket是大材小用。如果您发现这是太多的工作,而回报太少,您也可以设置一个AJAX调用,每隔几分钟启动一次,在服务器上发送另一个页面,并相应地返回票证数量和更新。它不会是瞬间的,但是如果你不需要精确到秒的分辨率,它可能就足够了。您可以根据需要将间隔调整为长或短(在某种程度上;用不断的请求轰炸您的服务器会让您慢一点)。

 类似资料:
  • 问题内容: 我正在尝试创建一个自定义的视图,该视图可以让我获得数据库所有视图和表的行数。 在SQL Server中该死的表计数 现在,我需要获取VIEWS的行数 我觉得唯一的方法是从视图中计算行数,即 但是,我找不到一种方法来让视图的行数以及view_name,table_schema等。 在这方面的任何进步将是有帮助的。 问题答案: 这是最终的解决方案:

  • 问题内容: 我正在尝试创建一个用于在PHP上执行oracle sql语句的类。 这是我的index.php,我正在尝试调用我的函数 和我的dbcontrol.php用于我的功能 我不确定似乎有什么问题。但是每次我运行这个。页面上未显示任何内容。没有结果,没有数据。但是我确信数据库中有数据。 问题答案: 您总是得到空白页的原因是: oci_num_rows()函数不会返回您可能认为的所选行数。它返回

  • 问题内容: 有没有一种方法可以使用Redis刷新Redis数据库? 我正在寻找类似或 问题答案: Redis-py实际上具有以下功能:

  • 问题内容: 我想知道如何在CodeIgniter中使用AJAX从数据库获取数据。您能否检查下面的代码以找出问题的原因?当我从视图中单击链接时,没有任何反应。 这是我的看法: 这是我的控制器: 这是我的模型: 这是我的JavaScript文件: 问题答案: 试试这个: 我所看到的问题是这是因为您的选择器是锚,并且锚具有文本而不是值。因此,我建议您使用而不是。

  • 本文向大家介绍node.js从数据库获取数据,包括了node.js从数据库获取数据的使用技巧和注意事项,需要的朋友参考一下 本文需要用node.js做一个从Sqlserver获取数据并显示到页面上的小功能,下面就为大家分享: app.js: 接下来就直接在页面中使用get方式请求即可,当然post方式也是类似原理。 还有我发现textarea控件在改变其text和html属性的时候,value还保

  • 问题内容: 这是我的类,用于从数据库中获取数据 这是我的文件: 当我运行该程序时,出现异常后,请帮助我如何解决它。我是Hibernate的新手,尝试学习但被卡住了。 虽然我能够将数据存储在数据库中,但我有2个用于第一和第二类的数据获取数据,但在获取数据时遇到了问题PLZ帮助。 问题答案: 让我引述一下: 据我所知,您正在使用表名。 所以应该是这样的: