Javascript AJAX获取请求,每5秒刷新一次

Javascript AJAX获取请求,每5秒刷新一次,javascript,jquery,ajax,refresh,Javascript,Jquery,Ajax,Refresh,我目前正在做一个项目,不知道如何刷新AJAX请求。 目前我的代码工作良好,我可以显示所有的标记,但我想刷新它每5秒,并收到一个新的! 下面是我的脚本副本,我尝试使用setInterval但没有成功! 这方面的帮助会非常好。 再次感谢 var gMapsLoaded = false; window.gMapsCallback = function(){ gMapsLoaded = true; $(window).trigger('gMapsLoaded'); } window.lo

我目前正在做一个项目,不知道如何刷新AJAX请求。 目前我的代码工作良好,我可以显示所有的标记,但我想刷新它每5秒,并收到一个新的! 下面是我的脚本副本,我尝试使用setInterval但没有成功! 这方面的帮助会非常好。 再次感谢

var gMapsLoaded = false;
window.gMapsCallback = function(){
    gMapsLoaded = true;
    $(window).trigger('gMapsLoaded');
}
window.loadGoogleMaps = function(){
    if(gMapsLoaded) return window.gMapsCallback();
    var script_tag = document.createElement('script');
    script_tag.setAttribute("type","text/javascript");
    script_tag.setAttribute("src","http://maps.google.com/maps/api/js?sensor=false&callback=gMapsCallback");
    (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
}


$(document).ready(function(){
    function initialize(){
        var mapOptions = {
            zoom: 18,
            center: new google.maps.LatLng(51.5207239719, -0.182568696184),
            mapTypeId: google.maps.MapTypeId.ROADMAP};
        map = new google.maps.Map(document.getElementById('map_canvas'),mapOptions);
    }
    $(window).bind('gMapsLoaded', initialize);
    window.loadGoogleMaps();
});

$(window).load(function update () {


    $.ajax({
        url: 'get-last.php',
        success:function(data){
            //Loop through each location.
            $.each(data, function(){
                //Plot the location as a marker
                var pos = new google.maps.LatLng(this.latitude, this.longitude);
                new google.maps.Marker({
                    position: pos,
                    map: map
                });




            });
        } ,  complete: function() {
      setInterval(update, 1000);
        }

      });
使用
setTimeout(函数(){alert(“Hello”);},3000)此函数的函数。
它将执行函数并在特定时间后重新计算它

使用
setTimeout(函数(){alert(“Hello”);},3000)此函数的函数。

它将执行函数并在特定时间后重新计算它

您是否尝试将
update()
函数包装在
setInterval()
中,而不是在完全回调时执行它?我也看不出你在哪里定义了
map
变量

$(window).load(function(){
    update()
    setInterval(function(){
        update()
    }, 5000)
})

function update(){
    $.ajax({
        url: 'get-last.php',
        success:function(data){
            //Loop through each location.
            $.each(data, function(){
                //Plot the location as a marker
                var pos = new google.maps.LatLng(this.latitude, this.longitude);
                new google.maps.Marker({
                    position: pos,
                    map: map //is this been set globally?
                });
            });
        }
    })
}

您是否尝试过将
update()
函数包装在
setInterval()
中,而不是在完全回调时执行它?我也看不出你在哪里定义了
map
变量

$(window).load(function(){
    update()
    setInterval(function(){
        update()
    }, 5000)
})

function update(){
    $.ajax({
        url: 'get-last.php',
        success:function(data){
            //Loop through each location.
            $.each(data, function(){
                //Plot the location as a marker
                var pos = new google.maps.LatLng(this.latitude, this.longitude);
                new google.maps.Marker({
                    position: pos,
                    map: map //is this been set globally?
                });
            });
        }
    })
}

感谢您的时间,您的功能只有在我加载页面并删除标记加载5秒后才起作用。有更新吗?@riccardotrevisan抱歉忘记在页面加载时添加该功能。加载时添加了
update()
。这就是你想要达到的目标吗?是的,现在工作得很好。谢谢你救了我的命。非常好的工作伙伴。谢谢你的时间,你的功能只有在我加载页面并删除标记加载5秒后才起作用。有更新吗?@riccardotrevisan抱歉忘记在页面加载时添加该功能。加载时添加了
update()
。这就是你想要达到的目标吗?是的,现在工作得很好。谢谢你救了我的命。非常好的工作伙伴。谢谢,Nalin,你的建议很好,但只是在我第一次加载页面时才提醒我,不是每3秒钟提醒一次。我做错了什么吗?事实上,我用setInterval替换setTimeout,每3秒弹出一个窗口打招呼,但不刷新标记Hanks,Nalin,你的建议很好,但只是在我第一次加载页面时,而不是每3秒提醒我一次。我做错了什么吗?实际上我用setInterval替换setTimeout,每隔3秒弹出一个窗口打招呼,但不刷新标记