使用JQuery以不可见的方式调用URL并返回成功/错误标志


Using JQuery to invisibly call a URL and return a success/error flag

我正在编写一个基于网络的游戏,玩家在7x7网格上移动。目前,移动按钮调用/action/move/up风格的PHP url,更新数据库,然后重新加载游戏页面以反映新玩家的位置。

我希望能够让玩家点击移动,并使用JQuery tweens在不刷新页面的情况下移动玩家代币。我不确定的是,我希望这能更新服务器,然后锁定移动按钮。然后JS将调用一两个URL,该URL将为页面上的几个变量返回新值,并检查移动是否成功。如果是,移动按钮将解锁,并允许玩家再次移动。

我想象的伪代码:

On Click (Move Up)  
{  
if(ReadyToMove)
    {
    Tween(ship, old position, new position)
    ReadyToMove = 0
    Call MoveDone
    }
}
MoveDone
{
ReadyToMove = Url('../movecheck/movement/' . current position .)
/* this url would return either 1 or 0 depending on if db xy matches given xy */    
if(!ReadyToMove)
{ current position = old position; display error(movefail) }
}

我实际上是如何做到这一点的?

查看$.ajax():

$.ajax({
    method: 'POST',
    url: ':./movecheck/movement/'
    data: /* an object containing data key/value pairs */,
    dataType: 'json',
    success: function(resp) {
        /* do stuff after the response from the server has been received */
    }
});

要获得正确的resp对象,只需echo json_encode(...);,其中...是包含数据的关联数组或stdClass对象,例如array('canMove' => true)