如何自发地打开jQuery对话框消息(根据db更改)?

问题描述 投票:0回答:2

我知道如何调用jQuery对话框。首先,我将设计我的对话框,我将打电话给

$('#dialogbox').dialog('open');

通常我会在页面加载时或在按钮点击等任何事件上调用对话框。

但我的情况是这样的。我的客户端发送紧急消息,我将进入服务器(Web应用程序)。该消息可能随时出现。当消息传来时,我将它存储在DB中。在这里,我必须弹出服务器应用程序。为此我打算使用jQuery对话框。消息可能随时出现,我的意思是当http://localhost:8080/ITS/Login.html页面打开时消息可能会出现在服务器中,或者当http://localhost:8080/ITS/BusDetail.html打开时它会出现,所以我显示了弹出窗口,如果它来了login.htmlBusDetails.html就像这么多html,JSP页面是那里 。那么我该如何调用jquery dialogfor这种场景呢。请帮帮我。

javascript jquery html jquery-dialog
2个回答
0
投票

当页面通过ajax加载询问是否需要显示模态时,为什么不向服务器发出请求。因此,无论何时刷新页面,您都会发现是否需要显示模态。


0
投票

您有2个选项,或者您正在从客户端进行定时ping。意味着每隔X秒,您需要向服务器发送一个请求,以检查是否有任何行已更新。或者,您将需要WebSocket。

第一个选项是setInterval:

 function checkDatabase(){
     $.ajax({url: "http://wwww.myserver.com/getDBcheck", success: function(result){
    $('#dialogbox').dialog('open');
  }});
    var myVar = setInterval(checkDatabase, 1000)

这将每1秒(或更多,如果你想)轮询服务器,以查看是否有新消息。

您可以查看有关WebSockets here的更多信息。

第二种选择:

对于WebSockets,您的服务器应该支持WS。

在您的Javascript代码客户端中,您应该启动WebSocket握手,如下所示:

    // Create WebSocket connection.
const socket = new WebSocket('ws://localhost:8080');
// Connection opened
socket.addEventListener('open', function (event) {
    socket.send('Hello Server!');
});
// Listen for messages
socket.addEventListener('message', function (event) {
    console.log('Message from server ', event.data);
    $('#dialogbox').dialog('open');
});

注意:WebSocket URL应该是WS服务器的地址+您在服务器中设置的端口。

这里有一个如何使用JSP + TOMCAT 7 https://www.programering.com/a/MDO4cDMwATE.html实现WebSocket的示例

© www.soinside.com 2019 - 2024. All rights reserved.