1
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);

この領域にブレークポイントを設定すると、setInterval毎秒通知されますが、getJSON呼び出しが実行されることはありません。サーバー ログを見ると、alerts_url.

更新 断続的な Chrome の問題のようです。Safariで起動すると、期待どおりに機能しました。今Chromeをクリアして、もう一度やり直します。

4

2 に答える 2

0

あなたのコードは問題ないように見えますが、欠けているのはアラート URL の初期化です。あなたのコード例にはそれが含まれていなかったので、テストする jsFiddle を作成しました。これが私のために働いたコードです:

$("#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);
于 2013-08-12T18:04:31.733 に答える
0

ある種のキャッシングの問題のようです。Chrome はすべての AJAX リクエストをキャッシュ不可として処理すると思っていましたが、そうではないと思います。修正は次のとおりです。

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");
  });
};

cacheリクエストとともにオプションを送信すると、それが修正されるようです。どうやら、URLのパラメーターとしてランダムで一意の文字列(日付/時刻など)を送信することもでき、それも修正されます

于 2013-08-12T18:39:19.533 に答える