如何使用在我的数据库中更改的新值更新javascript变量?

时间:2011-04-19 17:15:59

标签: php javascript mysql database

我正在构建一个多人游戏,它使用mysql数据库存储玩家的坐标位置,然后用于显示对手模型。

游戏在客户端使用javascript文件(milktruck.js),然后在服务器端使用php文件(xml_http_request.php)。

当更新数据库信息时,尝试获取javascript变量(存储对手的坐标信息)时,会出现问题。

使用以下代码在php文件中声明javascript变量:

  echo "<script> var lla0php = $lla0; </script>";
  echo "<script> var lla1php = $lla1; </script>";
  echo "<script> var lla2php = $lla2; </script>";

然后在javascript文件中使用,勾选函数:prototype.tick,带:

  window['lla0_2']= lla0php;
  window['lla1_2']= lla1php;
  window['lla2_2']= lla2php;

如何使用新的数据库信息不断更新这些变量?

2 个答案:

答案 0 :(得分:0)

Web模型是无状态的,要做到这一点,你将不得不考虑克服这个问题的方法,并且可能考虑编写一个为你处理这个问题的抽象层。

您需要持续轮询或查看其他基于Web的解决方案,这些解决方案允许服务器将数据“推送”回客户端并维持通信的“开放渠道”。这方面的一个例子是您的浏览器中的Google Talk或FaceBook聊天。

答案 1 :(得分:0)

您需要做的是使用ajax。


function requestCoord(){
    $.ajax({
        url: "your url",
        dataType : "json",
        type: "GET",
        success(val){
            //get your php script to echo out a json string 
                        //and it will be in val
            window['lla0_2']= val.lla0php;
            window['lla1_2']= val.lla1php;
            window['lla2_2']= val.lla2php;

        }
    });
}

setInterval(requestCoord, 1000);

更新

您可以使用html5 sockets.