Javascript 在循环中运行ajax调用

Javascript 在循环中运行ajax调用,javascript,jquery,ajax,loops,Javascript,Jquery,Ajax,Loops,好的,我正在制作一种在线多人游戏,需要4个人加入一个大厅。 一切都已完成,但我希望屏幕不断更新谁加入了大厅。 这是我的功能 function lobbyquery(x){ $.ajax({ url: 'inc/fn/lobbyload.php?lid='+ x, success: function(data) { var spl = data.split(",") var p1 = spl[0]; var p2 = spl[1];

好的,我正在制作一种在线多人游戏,需要4个人加入一个大厅。 一切都已完成,但我希望屏幕不断更新谁加入了大厅。 这是我的功能

function lobbyquery(x){
$.ajax({
    url: 'inc/fn/lobbyload.php?lid='+ x,
    success: function(data) {
        var spl = data.split(",")
        var p1 = spl[0];
        var p2 = spl[1];
        var p3 = spl[2];
        var p4 = spl[3];
        var pl = spl[4];
        var pleft = 4 - pl;
        $('#game').html('Player1 : ' + p1 + '<br>Player2 : ' + p2 + '<br>Player3 : ' + p3 + '<br>Player4 : ' + p4 + '<br><Br>' + pleft + ' players left to join.')
      }
});
函数游说查询(x){
$.ajax({
url:'inc/fn/lobbyload.php?lid='+x,
成功:功能(数据){
var spl=data.split(“,”)
变量p1=spl[0];
var p2=spl[1];
var p3=spl[2];
var p4=spl[3];
var pl=spl[4];
var-pleft=4-pl;
$(“#game').html('Player1:'+p1+'
Player2:'+p2+'
Player3:'+p3+'
Player4:'+p4+'

'+pleft+'玩家离开后加入。')) } });
}


我找不到任何解决方案,请帮助。

使用计时器每隔#秒/ms更新一次DIV

setInterval(myMethod(x),5000);
函数myMethod(x)
{
$.ajax({
url:'inc/fn/lobbyload.php?lid='+x,
成功:功能(数据){
var spl=data.split(“,”)
变量p1=spl[0];
var p2=spl[1];
var p3=spl[2];
var p4=spl[3];
var pl=spl[4];
var-pleft=4-pl;
$(“#game').html('Player1:'+p1+'
Player2:'+p2+'
Player3:'+p3+'
Player4:'+p4+'

'+pleft+'玩家离开后加入。')) } }
}
您始终可以设置一个时间间隔,但更好的方法是在lobbyload中检查新玩家。当您添加了新玩家时,您可以从php脚本执行lobbyquery更新函数(或类似的函数)

所以逻辑应该是这样的:

新玩家加入>newPlayerToLobby.php


newPlayerToLobby.php调用javascript大厅更新函数

您应该使用socket.io避免轮询而使用sockets。我尝试了这个方法,但问题是我在单击按钮时调用了该函数。好的,这有点超出了我的想象……您能更详细地解释一下吗?当然。所以有两种主要的方法来解决您的问题检查新玩家的方法。1.让大厅不断检查是否添加了任何新玩家。2.仅在添加新玩家时更新大厅。因此,当每个新玩家加入时,您需要调用lobbyquery函数来刷新大厅信息。