【问题标题】:opening modal from server side, grails从服务器端打开模式,grails
【发布时间】:2014-11-26 10:20:03
【问题描述】:

我试图在会话过期后显示模态。我正在使用过滤器来捕获该会话已过期:

def filters = {
    all(controller:'graphs', action:'*') {
        before = {
            if (session.expired) {
                //some code to invoker modal
                return false
             }
        }           
    }
}

Modal 应该通知用户会话已过期并重定向到主页。关于如何调用模态的任何建议?

【问题讨论】:

    标签: session grails modal-dialog


    【解决方案1】:

    您的提议实施起来非常棘手,因为您需要客户端发起的请求或会话来将任何内容传输到客户端,并且任何此类请求都会延长会话。我看到了两种可能性:

    轮询

    如果您不介意会话被延长并且只想确保用户仍然以最简单的方式登录,那么最简单的方法是使用 setInterval 或类似方法实现 Javascript 轮询(但请确保轮询在第一次失败时停止或者用户在再次登录后有被重定向到轮询端点的风险,特别是如果他们打开了多个选项卡)。如果您不想延长会话,可以尝试hacky workaround

    网络套接字

    您可以使用适当的plugin 打开 websocket 连接并保持打开状态。您需要确保没有发送会话延长心跳。然后当会话结束时,通过连接发回一条消息。请注意,这将涉及比轮询更多的工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 2021-03-12
      • 2011-12-27
      • 2011-04-29
      相关资源
      最近更新 更多