我知道如何调用jQuery对话框。首先,我将设计我的对话框,我将调用
$('#dialogbox').dialog('open');
通常我会在页面加载时或在按钮点击等任何事件上调用对话框。
但我的情况是这样的。我的客户端发送紧急消息,我将进入服务器(Web应用程序)。该消息可能随时出现。当消息传来时,我将它存储在DB中。在这里,我必须弹出服务器应用程序。为此我打算使用jQuery对话框。该消息可能随时出现,我的意思是当http://localhost:8080/ITS/Login.html
页面打开时消息可能会出现在服务器中,或者当http://localhost:8080/ITS/BusDetail.html
打开时消息可能会出现,所以我显示了弹出窗口login.html
而BusDetails.html
就像这样有很多html,JSP页面。那么我怎样才能为这种情况调用jquery dialog
。请帮助我。
答案 0 :(得分:0)
当页面通过ajax加载询问是否需要显示模态时,为什么不向服务器发出请求。因此,无论何时刷新页面,您都会发现模态是否需要显示。
答案 1 :(得分: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实现WebSocket的示例 https://www.programering.com/a/MDO4cDMwATE.html