【问题标题】:How to open jQuery dialog message spontaneously (according to db change)?如何自发打开jQuery对话框消息(根据db更改)?
【发布时间】:2019-02-14 23:33:22
【问题描述】:

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

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

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

但我的情况是这样的。我的客户发送一条紧急消息,我将进入服务器(一个 Web 应用程序)。消息可能随时到来。当消息到来时,我将其存储在数据库中。在这里,我必须弹出服务器应用程序。为此,我计划使用 jQuery 对话框。消息可能随时出现,我的意思是消息可能会在http://localhost:8080/ITS/Login.html 页面打开时进入服务器,或者在http://localhost:8080/ITS/BusDetail.html 打开时出现,所以如果它出现login.html 和BusDetails.html 之类的,我会显示弹出窗口这么多的html,JSP页面都在那里。那么对于这种情况,我怎么能打电话给jquery dialog。请帮帮我。

【问题讨论】:

  • 你需要 web socket 才能做到这一点

标签: javascript jquery html jquery-dialog


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您有 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

    【讨论】:

      猜你喜欢
      • 2019-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多