3

我正在开发一个使用 ROR 和主干编写的应用程序,它基本上是一个使用 ROR 作为 api 并在 Backbone 和 js 模板的帮助下呈现所有 UI 的 1 页应用程序。

当我部署新版本时,我们有不刷新浏览器选项卡的用户,我想确定已部署新版本并向他们推送通知,要求刷新页面。

什么是从客户端确定已部署新版本的好方法?

谢谢,

4

3 回答 3

1

我可能会创建/version一条返回当前部署的 git 修订版的 SHA 的路线。客户端可以定期获取此 url 并查看它是否已更改。

这种方法让服务器不必担心维护当前连接的客户端列表(用于推送通知)。更重要的是,它易于实施。

于 2012-07-05T21:33:22.540 回答
1

这可以在不需要轮询服务器的情况下完成:

客户端应将其版本与每个 APi 调用一起发送到服务器(可以是 HTTP 标头)

如果服务器支持客户端的版本,它将成功并返回所需的数据。

否则,服务器将返回一个错误代码,指出不再支持客户端。UI 然后可以显示一条消息,要求重新加载页面。

在主干方面,您需要覆盖模型的“同步”方法,或配置传输层(默认为 jQuery 以将 HTTP 标头添加到每个 AJAX 调用。

于 2012-07-07T10:13:37.093 回答
0

我也喜欢使用浏览器推送简单:http ://pusher.com/为此...所以你可以:

Pivotal Tracker 执行此操作:

  • 向用户推送通知,告知他们应该在更改前 15 分钟保存他们的工作
  • 向用户推送应用需要刷新的通知
于 2012-07-05T21:55:32.557 回答