来自一页的两个ajax请求

时间:2013-11-25 00:02:59

标签: php jquery ajax

我想使用jquery从两个php页面加载数据。我把下面的代码放在一起,但只有一个不同时工作。有什么想法吗?

  $(document).ready(function() {
        loadData();
    });

    var loadData = function() {
        $.ajax({    
            type: "GET",
            url: "second.php",             
            dataType: "html",                   
            success: function(response){                    
                $(".hm_m_un").html(response);
                setTimeout(loadData, 1000); 
            }

        });
    };
    $(document).ready(function() {
        loadData();
    });

    var loadData = function() {
        $.ajax({    
            type: "GET",
            url: "test.php",             
            dataType: "html",                   
            success: function(response){                    
                $(".rx").html(response);
                setTimeout(loadData, 1000); 
            }

        });
    };

3 个答案:

答案 0 :(得分:4)

您使用第二个变量覆盖了第一个loadData变量。给它一个不同的名字,你会没事的。

作为一个注释,你不需要两次调用$(document).ready(),你可以在技术上调用一次。我会写这样的东西:

function descriptiveFunctionName() {
    $.ajax({    
        type: "GET",
        url: "second.php",             
        dataType: "html",                   
        success: function(response){                    
            $(".hm_m_un").html(response);
            setTimeout(loadData, 1000); 
        }
    });
}

function anotherDescriptiveFunctionName() {
    $.ajax({    
        type: "GET",
        url: "test.php",             
        dataType: "html",                   
        success: function(response){                    
            $(".rx").html(response);
            setTimeout(loadData, 1000); 
        }
    });
}

$(document).ready(function() {
    descriptiveFunctionName();
    anotherDescriptiveFunctionName();
});

请注意,虽然这是非常懒惰的答案,但用户Machavity的代码更适合重复使用,尽管您可能只想使用发送到loadData的回调来获得更大的灵活性。将来

答案 1 :(得分:2)

您已将它们全部命名为。尝试一些合并

$(document).ready(function() {
    window.setInterval(function() { loadData('second.php', $('.hm_m_un')); }, 1000);
    window.setInterval(function() { loadData('test.php', $(".rx")); }, 1000);
});

var loadData = function(page, ele) {
    $.ajax({    
        type: "GET",
        url: page,             
        dataType: "html",                   
        success: function(response){                    
            ele.html(response); 
        }

    });
};

答案 2 :(得分:1)

非常简单....你声明了一个变量loadData并将其分配给一个函数。

然后使用相同的变量分配给另一个函数,从而擦除第一个实例。使用不同的变量名称