0

私は多くの(変化する)変数を持つ2人用ボードゲームを持っています。テストの目的で、次のように、testdiv内にこれらすべてのjavascripts変数を表示したいと思います。

<div id="testdiv" style="margin-top:800px;background-color:yellow">
/** here the listing of js vars and arrays */
</div> 

このボードゲームは、ゲームを更新するためにバックエンドファイルを使用しますが、JavaScript変数で正確に何が起こるかを追跡しようとすると迷子になります。私は変数と配列の名前を知っています。順番を変えた後、ページを更新しましたが、ajax(jQuery)でページを更新したいと思います。プレイヤーターンをチェックするために、私はすでにjQueryとタコナイトプラグインフォームhttp://www.malsup.com/jquery/taconite/を使用しています。 このプラグインは次のようにxmlを返します。

### Taconite output 
?><taconite> 
<?php 
echo $content_refresh; // refresh pagina indien nodig
echo $content_redirect;
echo $content_melding; // melding over verlaten tafel of afgewezen!
echo $content_inpartij; // tegenstander in partij??
echo $content_chataangevraagd; // chat door tegenstander aangevraagd?
echo $content_wachtopaanschuiven; // div leegmaken zodra 2e speler in partij is
echo $content_starttijd;
?>
</taconite>

たとえば、すべてのコンテンツ変数はxmlで生成されます

## Taconite: refresh nodig??

if($refresh_needed == 'ja')
{
$content_refresh = '<eval><![CDATA[
                                 window.location="http://www.xxxxxxxx.nl/v45/partij.php?gameID='.$_GET['gameid'].'";
                    ]]> 
                    </eval>';
//$meta_refresh = '<replaceContent select="#refresh"><META HTTP-EQUIV="refresh"     CONTENT="0"></META></replaceContent>';
}

したがって、更新する代わりに、ボードゲームを更新したいだけですが、すべての(既知の)現在のjavascript値の概要はありません。

助けてくれてありがとう!

4

2 に答える 2

1

私はあなたのプラグインに精通しておらず、サーバーサイドテクノロジーもリストされていません(phpを推測しています)ので、http://php.net/manual/en/book.json.phpでphpのjsonシリアル化機能を見てください。

次に、ここで行う必要があるのは、クライアント側のjavascriptで、あなたと同じようにajaxリクエストを作成しますが、サーバー側のコードをjsonを使用して記述し、必要な変更またはボード全体の状態を表すデータのみを送信します。 。クライアント側では、JSONオブジェクトが受信され、直接javascriptオブジェクトとして使用できます。このオブジェクトを処理するメソッドを使用して、サーバーが送信したデータに基づいてボードの状態を手動で更新できます。

編集:

申し訳ありませんが、スコープがここでデバッグ情報を取得することであったことを忘れました。ボードに更新をレンダリングするメソッドは、画面上の別のdivにデバッグ情報をレンダリングする必要があるためです。まだ使用していない場合は、ajaxにjqueryを使用します。jqueryを使用すると、セレクターを使用して次のことができます。

$("#debugDiv").text("Var a: " + boardState.VarA);
$("#debugDiv").append("Var b: " + boardState.VarB);

を見てみましょう:

http://api.jquery.com/append/

http://api.jquery.com/id-selector/

http://api.jquery.com/element-selector/

http://api.jquery.com/category/selectors/

于 2012-08-26T21:27:33.557 に答える
1

javascriptでは、宣言する変数globallyは通常、に付加されwindow objectます。したがって、変数がglobalスコープ内にある場合は、のでチェックインして、DOM tabfirebugクリックすることができますwindow

問題は、他の多くの変数もそこに表示されることです。

変数が他のスコープにある場合は、特定のスコープ内にあるものを確認できます。

それらをdivに出力する場合は、変数を他の変数と区別してから、 andfor inとともにループを使用する方法が必要になります。hasOwnPropertytypeof

そうは言っても、最善の方法は、アプリケーションを再構築して、少なくとも透過的にすることです。

于 2012-08-26T22:02:20.117 に答える