2012-07-05 58 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