繁体   English   中英

SetInterval在两个URL上同时调用AJAX请求

[英]SetInterval calling AJAX request on two URLs at the same time

我有一个像这样的AJAX函数和setInterval函数:

$("a[name=device_submit]").click(function(event) {
    var get_url = $(this).attr('href');
    event.preventDefault();

    $.ajax({
        url: get_url,
        success: function(data) {
            var data = JSON.parse(data);
            latitude = data[0].fields.latitude;
            longitude = data[0].fields.longitude;
            initialize(latitude, longitude)
        },

        statusCode: {
            400: function(data) {
                alert("No data found for this device!");
            }
        }
    });

    setInterval(function() {
        $.ajax({
            url: get_url,
            success: function(data) {
                var data = JSON.parse(data);
                latitude = data[0].fields.latitude;
                longitude = data[0].fields.longitude;

                //Remove current marker and change the position
                for (var i = 0; i < markersArray.length; i++) {
                    markersArray[i].setMap(null);
                }
                changeMarkerPosition(latitude, longitude);
            }
        });
    }, 9000);
});

当我单击第一个URL(例如url1)时,一切正常,第一个AJAX请求被发送,另一个请求每9秒触发一次。

单击url2时出现问题。 url2成功地响应了成功,但是现在,AJAX请求被触发了两次:

AJAXRequesturl1
AJAXRequesturl2

我不想要这个,我只想为已单击的URL设置setInterval 而已。

如何解决这个问题?

setInterval的返回值是一个ID,允许您取消该间隔:

var timer = setInterval(...);

// later on...
clearInterval(timer)

您需要将setInterval Id存储在变量中,然后在下次单击鼠标时清除间隔。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM