0

我有这个脚本可以 ping 4 台服务器。它包含一个发送 4 个请求并设置回调的循环。

var servers = new Array(
    {
        css: 'vanilla',
        ip: 'play.example.com',
        port: '25565'
    },
    {
        css: 'uhc',
        ip: 'uhc.example.com',
        port: '25565'
    },
    {
        css: 'ftb',
        ip: 'ftb.example.com',
        port: '25565'
    },
    {
        css: 'ts',
        ip: 'ts.example.com',
        port: '8765'
    }
);

for(var i = 0; i < servers.length; i++) {

    $.get('status.php', { 

        ip: servers[i]['ip'], 
        port: servers[i]['port'] 

    }, function(data) {

        var server = servers[i];

        data = $.parseJSON(data);

        if(data.status == 'online') {

            $('.'+server.css+' .status').addClass('online').text('Online');

        } else {

            $('.'+server.css+' .status').addClass('offline').text('Offline');
            $('.'+server.css+' .text-field').attr('disabled', true);

        }
    });

我的问题是,当回调被触发时,server变量已经发生了变化,因此ifrom 循环也发生了变化。如何将索引解析为回调函数?

4

1 回答 1

1

最好的方法是将值作为参数传递给 status.php 并将其返回给回调。这是知道回调是谁的唯一可靠方法。

于 2013-08-05T02:14:49.450 回答