Javascript setInterval不调用函数

Javascript setInterval不调用函数,javascript,function,setinterval,Javascript,Function,Setinterval,如果我在setInterval区域中放置断点,我每秒都会收到通知,但是getJSON调用永远不会执行。查看我的服务器日志,从来没有对警报\u url的请求 更新 似乎是间歇性铬问题。在Safari上启动了它,它按预期工作。现在清除Chrome,我会再试一次。您的代码似乎正常,但缺少的是警报url的初始化。您的代码示例中没有包含这一点,所以我做了一个修改。以下是对我有用的代码: get_alerts = function(alerts_url) { return $.getJSON(ale

如果我在
setInterval
区域中放置断点,我每秒都会收到通知,但是
getJSON
调用永远不会执行。查看我的服务器日志,从来没有对
警报\u url
的请求

更新
似乎是间歇性铬问题。在Safari上启动了它,它按预期工作。现在清除Chrome,我会再试一次。

您的代码似乎正常,但缺少的是警报url的初始化。您的代码示例中没有包含这一点,所以我做了一个修改。以下是对我有用的代码:

get_alerts = function(alerts_url) {
    return $.getJSON(alerts_url, function(alerts) {
        return $("#alerts_box").html("" + alerts.length + " Alerts");
    });
};

window.setInterval(function() {
    return get_alerts($("#alerts_box").data("alerts-url"));
}, 1000);

看起来是某种缓存问题。我以为Chrome将所有AJAX请求都视为不可缓存的,但我想不是。以下是修复方法:

$("#alerts_box").data("alerts-url","http://data.wien.gv.at/daten/wfs?service=WFS&request=GetFeature&version=1.1.0&typeName=ogdwien:BAUMOGD&srsName=EPSG:4326&outputFormat=json&maxfeatures=5")

get_alerts = function(alerts_url) {
  $.getJSON(alerts_url, function(alerts) {
    $("#alerts_box").html(new Date().getTime() + " " + alerts.features.length + " Alerts");
  });
};
window.setInterval(function() {
    get_alerts($("#alerts_box").data("alerts-url"));
  }
, 1000);

缓存
选项与请求一起发送似乎可以解决此问题。显然,您还可以发送一个随机的、唯一的字符串(如日期/时间)作为url中的参数,这也将修复它

您在网络选项卡中看到了什么?@SLaks-我没有看到任何与JSON调用相关的内容。只是请求获取页面的资源load@ArrayKnight-那对你有用吗?我的似乎没有加载anything@TylerDeWitt这不是你的问题,但你不需要在设置间隔中返回,你只需要调用get_alerts()。@ryan-谢谢你的提示。实际上,所有的CoffeeScript都被转换成javascript,但感谢您的指示。
get_alerts = function(alerts_url) {
  var noCache;
  noCache = new Date().getTime();
  return $.getJSON(alerts_url, {
    "cache": noCache
  }, function(alerts) {
    return $("#alerts_box").html("" + alerts.length + " Alerts");
  });
};