0

jquery/php で簡単なボードゲームを設計しています。ボードの状態は現在、サーバー側の php セッション変数に配列として保存されています。各ターンは php への ajax 呼び出しとして実行され、ロジックを実行してこの配列を更新し、配列を jquery に返して html としてレンダリングします。PHPセッション変数を使用してボードの状態を永続化しています...しかし、これは良い習慣ではないと思います。ブラウザは両方のタブを同じセッションの一部として扱うため、複数のタブで再生することさえできません。データベースにボードの状態を保存する以外の解決策を見つけたいのですが...これが唯一の合理的な解決策である場合は、私に知らせてください:)。ありがとう!

4

2 に答える 2

1

クライアント側にデータを保存する Lawnchairのような JavaScript ライブラリはどうですか?

デフォルトでは、lawnchair は dom ストレージを使用して持続しますが、他のアダプターが利用可能であり、dom ストレージが現在実行中の JavaScript ランタイムでサポートされていない場合。lawnchair は、機能するアダプターが見つかるまで、連続するアダプターをそれぞれ試行します。簡単。

Dom ストレージは複数のタブにもまたがっています。

Dive.Into.Javascript経由

ローカル ストレージ エリアに保存されたデータは期限切れにならず、さまざまなタブやウィンドウにまたがります。

于 2012-05-10T02:43:53.643 に答える
0

JavaScriptを使用してクライアント側にデータを保存できます。隠しフィールドに配置するか、次のようなjquery データのようなメカニズムを使用します。

$('body').data('player1-pos-x', x);
$('body').data('player1-pos-y', y);

問題は、ブラウザを更新するとすべてが失われることです。

別の方法は、サーバー側とクライアント側の両方にデータを保存することです。ゲーム ID とセッション ID のペアを保存して、ゲームを同じセッションにグループ化できます。ブラウザーを更新すると、セッションに関連するすべてのゲームが表示され、データを使用して決定を下すことができます。

于 2012-05-10T02:07:48.980 に答える