2012-07-05 54 views
3

我正在编写一个用ROR和骨干编写的应用程序,它基本上是一个使用ROR作为api并在帮助中的1页应用程序Backbone和js模板呈现所有UI。为“单页”网站推送新版本通知

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

从客户端确定是否部署了新版本会有什么好方法?

谢谢

回答

1

我可能会做一个/version路线,将返回当前部署的Git版本的SHA。客户端可以定期获取这个URL,看看它是否改变。

此方法让服务器不用担心维护当前连接的客户端列表(用于推送通知)。更重要的是,实施起来很简单。

+0

汇集服务器应该肯定更简单,但它是一个浪费带宽,我宁愿推动通知。 – Calin 2012-07-06 11:48:40

+0

选择是你的。 – 2012-07-06 11:50:32

0

我也很喜欢使用浏览器推送简单:http://pusher.com/这个......所以,你可以:

匹跟踪做到这一点:

  • 推给用户,他们应该保存他们的工作15分钟通知一改之前
  • 推通知给用户的应用需要刷新
+0

这是所有手动,由管理员或服务器端脚本完成的权利? – Calin 2012-07-06 11:48:05

+0

@Calin是的,正确 – 2012-07-06 12:44:30

1

这可以无需轮询本身来完成rver:

客户应与每个API调用发送到服务器的版本(可以是一个HTTP标头)

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

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

在骨干网方面,你需要重写模式的“同步”的方法,或配置传输层(默认为jQuery来的HTTP报头添加到每个AJAX调用。

+0

最佳答案就在这里。 – 2012-07-07 13:32:16