私たちはブラウザ ベースのソーシャル ゲームを開発しています。これはMMORPGゲームです。フロントエンド技術として html/javascript/css を使用しています (フラッシュと比較して)。ユーザーが初めてゲームをロードすると、一連のファイル (外部 js/css) がダウンロードされ、いくつかの ajax 呼び出しが要求されます。ユーザーがページを手動で更新しない限り、ページ全体が再度読み込まれることはありません。そして、現金、レベルなどのユーザー固有のデータを保存する js オブジェクトを作成します。また、ユーザーの今後の操作中に変更される可能性があります。そのため、バックエンドからデータを同期する必要があります。特別な問題は、ユーザーのデータが受動的に (他のユーザーによって) 更新される可能性があることです。これは、他のユーザーによる戦闘で発生する可能性があります。だから私の質問は、どのように、いつ同期するのですか?
1) ユーザーがタブをクリックする (html で div を表示/非表示にする) か、可能な操作 (戦う/何かを購入するなど) が行われるたびに、毎回データベースから新しいデータを取得するために ajax リクエストを呼び出します。 . 2) 1) と同様ですが、無駄なデータベース クエリを減らすために、ユーザーのデータが変更されたかどうかを示すプロキシを追加するだけです。ajax 呼び出しは、最初にプロキシに送られます。
1) 70% 以上の役に立たない ajax 呼び出しと db クエリがある可能性があります
2) 70% 以上の無駄な ajax 呼び出しが発生する可能性があります
ここでは 2) のアプローチを使用します。しかし、70% 以上の役に立たない ajax 呼び出しがまだ残っているため、これが最善の解決策だとは思いません。このユースケースに対するより良い解決策はありますか?
説明
役に立たない ajax 呼び出し: 2 つの ajax 呼び出しの間隔があるため、ユーザー データはまったく変更されない可能性があります。