2013-08-12 4 views
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.не setInterval вызова функции

ОБНОВЛЕНИЕ Появляется неустойчивая проблема с Chrome. Уволил его в Safari, и он работал, как ожидалось. Теперь очистите Chrome, и я попробую еще раз.

+0

Что вы видите на вкладке в сети? – SLaks

+0

@SLaks - Я не вижу ничего, связанного с вызовом JSON. Просто запросы на получение ресурсов для загрузки страницы –

+0

@ArrayKnight - Это сработало для вас? Mine, похоже, ничего не загружает –

ответ

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-адресе, а также исправить ее.

0

Ваш код выглядит нормально, но недостает инициализации сигнала-url. Вы не указали это в своем примере кода, поэтому я сделал jsFiddle to test. Вот код, который работал для меня:

$("#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); 
Смежные вопросы