0

我有一个包含很多(不断变化的)变量的 2 人棋盘游戏。出于测试目的,我想在 testdiv 中显示所有这些 javascripts 变量,例如:

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

这个棋盘游戏使用一个后端文件来更新游戏,但是当我试图跟随 javascript vars 发生的事情时我迷路了。我确实知道变量和数组的名称。轮换后,我刷新页面,但我想通过 ajax (jQuery) 更新页面。为了检查 playerturn,我已经使用了 jQuery 和 taconite 插件形式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 中。如果您还没有,我会使用 jquery 作为 ajax,并且使用 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. 因此,如果您的变量在globalScope 中,您可以将它们签入DOM tabfirebug然后单击window

问题是你会在那里看到很多其他变量。

如果您的变量在其他范围内,您只需检查特定范围内的内容。

如果你想在 div 中打印它们,你需要一些方法来区分你的变量和其他变量,然后使用for in循环和hasOwnPropertyand typeof

话虽如此,最好的方法是重组您的应用程序,使其至少对您透明。

于 2012-08-26T22:02:20.117 回答