用于应用版本检查的codeigniter钩子

时间:2009-07-15 08:12:00

标签: php codeigniter hook

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

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

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

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

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

现在我能够做所有事情,但无法阻止进一步处理。如果我在这种特殊情况下给出exit(),则不会发送视图响应。

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

3 个答案:

答案 0 :(得分:1)

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

我可以使用简单的echo / print。但是,如果我给出die()/ exit,则CodeIgniter视图不会发送响应。“

您不清楚在版本不匹配时要做什么 - 退出或发送回复?只需退出('NEW_VERSION_AVAILABLE'),在JS代码中检测到该响应,然后重新加载页面。

如果你想要完全忽略请求,你应该在pre_controller钩子中做同样的事情。

答案 1 :(得分:0)

不确定它会起作用,只是把它扔出去:

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

答案 2 :(得分:0)

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

何时进行版本验证:

  • 每次有人创建一个新会话

更新系统时:

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

此致 佩德罗