2009-07-15 28 views
0

我正在使用CodeIgniter构建应用程序。 该应用在setTimeoutInterval上有许多AJAX请求,每隔几秒触发一次。codeigniter hook用于应用程序版本检查

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

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

我使用CodeIgniter构建此应用程序。

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

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

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

回答

0

不知道它会工作,只是把它扔在那里:

这将有可能给你的错配检测传递给你的AJAX功能,然后调用JavaScript window.location的重定向到一个标准的“版本更新”错误页?

0

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

时候做的版本验证:

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

当你更新系统:

  • 把一个标志在配置/配置。 PHP的更新= true,那么所有活动会话将被迫做验证。

问候, 佩德罗

1

“现在我能够做的一切,但不能停止进一步的处理。如果我给的exit()在这种特殊情况下,该视图响应不被发送。

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

您不清楚您想要对版本不匹配做什么 - 退出或发送响应?只要做一个退出('NEW_VERSION_AVAILABLE'),在你的JS代码中检测这个响应,然后重新加载页面。

如果您希望竞争性地忽略该请求,则应该在pre_controller钩子中执行相同的操作。