【问题标题】:codeigniter hook for app version checking用于应用程序版本检查的 codeigniter 钩子
【发布时间】:2009-07-15 08:12:00
【问题描述】:

我正在使用 CodeIgniter 构建一个应用程序。 该应用在 setTimeoutInterval 上有许多 AJAX 请求,每隔几秒触发一次。

现在的情况是: 如果用户有一个页面保持打开。页面每隔一段时间发送 ajax 请求。 那时我已经在服务器中更新了我的应用程序。

所以我想保持版本检查,在此期间应用程序是否已升级通知用户。

我正在使用 CodeIgniter 来构建这个应用程序。

我正在扭动一个“post_controller”钩子,它将检查请求标头中的版本和应用程序中的当前版本。如果有什么不对。它将发送版本不匹配响应并退出。

现在我可以做任何事情,但不能停止进一步的处理。如果我在这种特殊情况下给出 exit(),则不会发送视图响应。

我可以使用简单的回显/打印。但是,如果我给出 die()/exit,CodeIgniter 视图不会发送响应。

【问题讨论】:

    标签: php codeigniter hook


    【解决方案1】:

    “现在我可以做任何事情,但不能停止进一步处理。如果我在这种特殊情况下给出 exit(),则不会发送视图响应。

    我可以使用简单的回显/打印。但如果我给出 die()/exit,CodeIgniter 视图不会发送响应。”

    您不清楚您想对版本不匹配执行什么操作 - 退出或发送响应?只需执行 exit('NEW_VERSION_AVAILABLE'),在 JS 代码中检测到该响应,然后重新加载页面。

    如果您希望完全忽略该请求,您应该在 pre_controller 挂钩中执行相同操作。

    【讨论】:

      【解决方案2】:

      不确定它会起作用,只是把它扔在那里:

      是否可以将不匹配检测传递给 AJAX 函数,然后调用 javascript window.location 重定向到标准的“版本更新”错误页面?

      【讨论】:

        【解决方案3】:

        由于 codeigniter 将会话存储在数据库中,因此您在更新服务器时始终可以知道谁连接到应用程序。

        什么时候做版本验证:

        • 每当有人创建一个新会话时

        更新系统时:

        • 在 config/config.php 中设置一个标志,例如 updated=true,然后所有活动会话将被强制进行验证。

        问候, 佩德罗

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-01-21
          • 2011-03-11
          • 2019-07-30
          • 1970-01-01
          • 1970-01-01
          • 2010-09-08
          • 2012-05-23
          • 1970-01-01
          相关资源
          最近更新 更多