我正在开发一个使用 ROR 和主干编写的应用程序,它基本上是一个使用 ROR 作为 api 并在 Backbone 和 js 模板的帮助下呈现所有 UI 的 1 页应用程序。
当我部署新版本时,我们有不刷新浏览器选项卡的用户,我想确定已部署新版本并向他们推送通知,要求刷新页面。
什么是从客户端确定已部署新版本的好方法?
谢谢,
我正在开发一个使用 ROR 和主干编写的应用程序,它基本上是一个使用 ROR 作为 api 并在 Backbone 和 js 模板的帮助下呈现所有 UI 的 1 页应用程序。
当我部署新版本时,我们有不刷新浏览器选项卡的用户,我想确定已部署新版本并向他们推送通知,要求刷新页面。
什么是从客户端确定已部署新版本的好方法?
谢谢,
我可能会创建/version
一条返回当前部署的 git 修订版的 SHA 的路线。客户端可以定期获取此 url 并查看它是否已更改。
这种方法让服务器不必担心维护当前连接的客户端列表(用于推送通知)。更重要的是,它易于实施。
这可以在不需要轮询服务器的情况下完成:
客户端应将其版本与每个 APi 调用一起发送到服务器(可以是 HTTP 标头)
如果服务器支持客户端的版本,它将成功并返回所需的数据。
否则,服务器将返回一个错误代码,指出不再支持客户端。UI 然后可以显示一条消息,要求重新加载页面。
在主干方面,您需要覆盖模型的“同步”方法,或配置传输层(默认为 jQuery 以将 HTTP 标头添加到每个 AJAX 调用。
我也喜欢使用浏览器推送简单:http ://pusher.com/为此...所以你可以:
Pivotal Tracker 执行此操作: