Как мне обновить переменные javascript новыми значениями, которые меняются в моей базе данных? - PullRequest
0 голосов
/ 19 апреля 2011

Я строю многопользовательскую игру, в которой для хранения координатных позиций игроков используется база данных mysql, которая затем используется для отображения моделей противника.

Игра использует файл javascript (milktruck.js) на стороне клиента, а затем файл php (xml_http_request.php) на стороне сервера.

Моя проблема возникает при попытке обновить переменные javascript (которые хранят информацию о координатах оппонента) по мере обновления информации базы данных.

Переменные javascript объявлены в файле php со следующим кодом:

  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 голосов
/ 19 апреля 2011

Что вам нужно сделать, это использовать 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);

UPDATE

Вы можете использовать html5 сокетов.

0 голосов
/ 19 апреля 2011

Веб-модель не имеет состояния, и для этого вам нужно будет подумать о способе ее преодоления и, возможно, подумать о написании слоя абстракции, который позаботится об этом за вас.

Вам нужно будет либо проводить постоянные опросы, либо искать другие веб-решения, которые позволяют серверу «передавать» данные обратно клиенту и поддерживать «открытый канал» связи. Примером этого может быть Google Talk в вашем браузере или чат FaceBook.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...