3

私は ROR とバックボーンで書かれたアプリケーションに取り組んでいます。これは基本的に ROR を API として使用する 1 ページのアプリケーションであり、バックボーンと js テンプレートを使用してすべての UI をレンダリングします。

新しいバージョンをデプロイするときに、ブラウザー タブを更新しないユーザーがいる場合、新しいバージョンがデプロイされたことを確認し、ページを更新するように求める通知をユーザーにプッシュしたいと考えています。

新しいバージョンがデプロイされたことをクライアントから判断するには、どのような方法がよいでしょうか?

ありがとうございました、

4

3 に答える 3

1

これは、サーバーをポーリングする必要なく実行できます。

クライアントは、サーバーへの各 API 呼び出しでそのバージョンを送信する必要があります (HTTP ヘッダーの場合もあります)。

サーバーがクライアントのバージョンをサポートしている場合、サーバーは成功し、目的のデータを返します。

それ以外の場合、サーバーは、クライアントがサポートされなくなったことを示すエラー コードを返します。UI は、ページのリロードを求めるメッセージを表示できます。

バックボーン用語では、モデルの「同期」メソッドをオーバーライドするか、トランスポート層を構成する必要があります (デフォルトでは、すべての AJAX 呼び出しに HTTP ヘッダーを追加する jQuery です。

于 2012-07-07T10:13:37.093 に答える
1

おそらく/version、現在デプロイされている git リビジョンの SHA を返すルートを作成します。クライアントは定期的にこの URL を取得し、変更されているかどうかを確認できます。

このアプローチにより、サーバーは現在接続されているクライアントのリストを維持する必要がなくなります (プッシュ通知用)。さらに重要なことに、実装が簡単です。

于 2012-07-05T21:33:22.540 に答える
0

また、ブラウザプッシュシンプルを使用するのも好きです:http://pusher.com/これには...次のことができます:

Pivotal Trackerはこれを行います:

  • 変更の15分前に作業を保存する必要があることをユーザーに通知します
  • アプリを更新する必要があることをユーザーに通知します
于 2012-07-05T21:55:32.557 に答える