1

我正在使用 jQuery 的 ajax 函数轮询我的服务器,然后使用该数据更新画布。我每秒轮询一次服务器(这不是使用 setInterval() 完成的,以防您想知道...我确实听说有时是这些问题的根源。画布是动画的,我会跟踪帧率。我用这个数据来计算一秒钟的时间)。这在 Chrome 中不是问题,但在 Firefox 和 Maxthon Cloud(以及程度低得多的 Opera)中,性能逐渐变得越来越差。我认为这是 ajax 调用,我不知道如何解决这个问题。这是我的“callServer()”函数,如果有用的话。谢谢!

function callServer(action, json)
{
    if(!json)
    {
        $.ajax({
            type: 'POST',
            url: 'okey.php.',
            data: 'action=' + action,
            cache: false,
            success: function(data)
            {
                switch(action)
                {
                    case 'ptv':
                        tilesValue = data;
                        break;
                    case 'ptc':
                        tilesColor = data;
                        break;
                    case 'tid':
                        //alert(data);
                        thisPlayerID = data;
                        break;
                    case 'pti':
                        playerTurnInfo = data;
                        //alert(data);
                        break;
                    case 'gs':
                        gameStatus = data;
                        break;
                    case 'steal':
                        alert(data);
                        break;
                    case 'draw':
                        alert(data);
                        break;
                    case 'testing':
                        alert(data);
                        break;
                }
            }
        });
    }
    else if(json)
    {
        $.ajax({
            type: 'POST',
            url: 'okey.php.',
            data: 'action=' + action,
            dataType: 'json',
            cache: false,
            success: function(data)
            {
                switch(action)
                {
                    case 'ptv':
                        tilesValue = data;
                        break;
                    case 'ptc':
                        tilesColor = data;
                        //alert(tilesColor.length);
                        break;
                    case 'pn':
                        playerNames = data;
                        break;
                    case 'pid':
                        playerIDs = data;
                        break;
                    case 'pts':
                        //alert("excellent");
                        turnStatuses = data;
                        break;
                    case 'ti':
                        tileIndeces = data;
                        //alert(tileIndeces.length)
                        break;
                    case 'dis':
                        //alert(parseInt(data[3]));
                        discarded = data;
                        //alert(parseInt(discarded[3]));
                        break;
                }
            }
        });
    }
}

更新:导致问题的不是电话频率。

4

0 回答 0