jquery/phpでシンプルなボードゲームをデザインしています。ボードの状態は現在、配列としてphpセッション変数にサーバーサイドで格納されています。各ターンはphpへのajax呼び出しとして実行され、この配列を更新するためのロジックを実行し、配列をjqueryに返してhtmlとしてレンダリングします。私はPHPのセッション変数でボード状態の永続性を達成しています...しかし、これは良い習慣ではないと思います。ブラウザは両方のタブを同じセッションの一部として扱うため、複数のタブでも再生できません。データベースに店舗の状態以外の解決策を見つけたいと思っていますが、これが唯一合理的な解決策であれば教えてください:)。ありがとう!データ永続化jquery/phpを達成する最良の方法は何ですか?
答えて
LawnchairのようなJavaScriptライブラリは、クライアント側にデータを保存するのはどうですか?デフォルトで
、lawnchairは、DOMストレージを使用して保持されますが、他のアダプタが利用可能とDOMある場合 ストレージは、現在実行中のJavaScriptランタイムによってサポートされていません。それぞれの 連続するアダプターが動作するまで、lawnchairは各アダプターを試行します。簡単です。
ドムストレージはタブにまたがっています。ローカル記憶領域に格納され
データの有効期限が切れていないとスパンを使用して、両方のタブで同じ変数名を使用しているため、おそらくださまざまなタブおよび/または窓
あなたはJavaScriptを使用してクライアント側にデータを保存することができます。このようなjquery dataような隠されたフィールドまたは使用のメカニズムのいずれかの場所:
$('body').data('player1-pos-x', x);
$('body').data('player1-pos-y', y);
問題それには、ブラウザを更新すると、すべてが失われています。
別の方法は、サーバー側とクライアント側の両方にデータを格納することです。同じセッションの下でゲームをグループ化するために、game-id、session-idのペアを格納することができます。ブラウザをリフレッシュすると、セッションが関連するすべてのゲームが行われ、データで決定が下されます。
ユーザーが新しいタブを開くとどうなりますか?ブラウザの更新と同じように扱われませんか?クライアントサイドのフィールドは空になります(リフレッシュされた場合のように)。しかし、セッションデータには値が入りますか?多くのタブを開くと、各タブで同じゲームを読み込むことになりますか? – valen
タブを開き、game-idをnullに設定してから、新しいゲームを作成するか、同じセッションIDに関連付けられた既存のゲームを読み込むことにします。 ajaxを使用して、サーバー側にゲームIDのリストを照会するか、新しいgame-idを作成し、適切な関連データをロードする必要があります。この方法で複数のタブを開いて別のゲームを開くことができます。これを念頭に置いておくと、同じゲームを読み込むと競合が発生する可能性があるので、システムを比較的複雑にすることができます。対処する必要があります。また、クライアント側とサーバー側の両方にプレーヤーを保存する必要があります –
- 1. Cシャープで永続化を行う最良の方法は?
- 2. 静的テキストを永続化する最良の方法
- 3. 多くのデータをオブジェクトに永続化する最良の方法
- 4. このレイアウトを達成する最良の方法は何ですか?
- 5. データベース同期を達成する最良の方法は何ですか?
- 6. 並列無限ループを達成する最良の方法は何ですか?
- 7. Springで永続データ(コードブックなど)をキャッシュする最良の方法は?
- 8. linuxで非永続ファイルを作成する最も良い方法は
- 9. サイトマップを生成する最良の方法は何ですか
- 10. DALを作成する最良の方法は何ですか?
- 11. ES 5.0でzipkinデータを永続化する方法は?
- 12. データのパッケージ化されたグラフィック表現をExcelから作成する最良の方法は何ですか?
- 13. アンドロイドアプリに永続的な情報を保存する最良の方法は何ですか
- 14. アプリケーションデータを永続化する方法は?
- 15. Beanを永続化する方法は?
- 16. "良い" SecureRandomを作成する最良の方法は何ですか?
- 17. Grails:GORMでhashmapを永続化する最も簡単な方法
- 18. AngularJSでWeb APIデータを永続化する方法
- 19. ASP.NETコア - アプリケーション全体でモデルを永続化する最善の方法は何ですか?
- 20. 私の場合、MVC5アプリケーションでデータを永続化する好ましい方法は何ですか?
- 21. 斜めの背景レイアウトを達成する最も良い方法は何ですか?
- 22. の永続化データ
- 23. rails3 ajax:ajaxを介してローカル変数を永続化する最善の方法は何ですか?
- 24. リアルタイムでDBからデータをフェッチする最良の方法は何ですか?
- 25. PHPで「時間」を正規化する最良の方法は何ですか?
- 26. C/C++でテキストファイルを暗号化する最良の方法は何ですか?
- 27. 私のアプリケーションをカーネルに接続する最良の方法は何ですか?
- 28. TypescriptのライブラリでGrapheneDBに接続する最良の方法は何ですか
- 29. マルチパートの質問をモデル化する最良の方法は何ですか
- 30. CodeigniterプロジェクトをFacebook APIに接続する最良の方法は何ですか?
をaccross。 $ _SESSION ['game_tab1']と$ _SESSION ['game_tab2']を使用してみてください。基本的にタブを参照するIDを追加します –
セッションを使用している場合は、保存するのではなく、同じセッション内のゲームのすべてのインスタンス – valen