你如何反复使用jquery发出ajax请求?

时间:2011-06-06 04:38:36

标签: javascript jquery

我有以下ajax请求在页面加载时运行

var city_id = $(".feed-selected-city").attr('id');
    $("#cityfeed").html("<div class='feed-loading'>The feed is loading ...</div>");
    var ajaxOpts = {
            type: "get",
            url: "ajax_getcityfeed.php",
            dataType: 'json',
            data: "&city=" + city_id,
            success: function(data) {
                $('#cityfeed').html(data.data);
            }
        };

    $.ajax(ajaxOpts);

如何在每10秒后运行这段代码?

3 个答案:

答案 0 :(得分:0)

使用setTimeout的无限循环。把它放在里面。

虽然我不建议这样做来实现你正在尝试的东西。我认为你需要的是某种民意调查;如果同时存在大量用户,这可能会导致服务器中断;因为每个访问者将每10秒发送一次http请求。

function timedCount()
{
console.log('Hello');
setTimeout("timedCount()",10000);
}

timedCount();

答案 1 :(得分:0)

将其包装在一个函数中,并使用setTimeout连续调用该函数。

function tick() {
    var city_id = $(".feed-selected-city").attr('id');
    $("#cityfeed").html("<div class='feed-loading'>The feed is loading ...</div>");
    var ajaxOpts = {
            type: "get",
            url: "ajax_getcityfeed.php",
            dataType: 'json',
            data: "&city=" + city_id,
            success: function(data) {
                $('#cityfeed').html(data.data);
            }
        };
    $.ajax(ajaxOpts);
    setTimeout('tick()',10000);
}

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

答案 2 :(得分:0)

@Yegor

使用名称包裹上述功能。然后使用setTimeout(function(){//在这里调用函数},10000); -
我建议你不要做这种实现。做一些替代方案。