Запрос jQuery Ajax каждые 30 секунд
У меня есть этот кусок кода, но значения могут меняться, пока кто-то на моем сайте. Мне нужно обновить div #finance каждые 30 секунд или около того. Это можно сделать?
$(function() {
$.getJSON(
"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22%5EFTSE%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?",
function(json){
$('#finance').text(json.query.results.quote.Change);
// Patching payload into page element ID = "dog"
});
});
Ответы
Ответ 1
Вы можете поместить свой код в отдельную функцию следующим образом:
function LoadFinance()
{
$(function() {
$.getJSON(
"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22%5EFTSE%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?",
function(json){ $('#finance').text(json.query.results.quote.Change);
// Patching payload into page element ID = "dog"
});
});
}
И затем настройте таймер, вызывающий функцию каждые 30 секунд:
setInterval( LoadFinance, 30000 );
Удачи!;)
Ответ 2
Вы можете установить его на интервале, например:
$(function() {
function update() {
$.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22%5EFTSE%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?",
function(json){
$('#finance').text(json.query.results.quote.Change);
});
}
setInterval(update, 30000);
update();
});
setInterval()
срабатывает в первый раз после интервала (например, он запускается через 30 секунд после загрузки DOM)... так что для начальной загрузки, вам все равно нужно вызвать его сразу же через update()
.
Ответ 3
Абсолютно:
setInterval(
function() {
$.getJSON(
"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22%5EFTSE%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?",
function(json){ $('#finance').text(json.query.results.quote.Change);
// Patching payload into page element ID = "dog" });
},
30000);