jQuery Ajax request every 30 seconds
Solution 1:
You can put your code in a separate function like this:
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"
});
});
}
And then set up a timer calling the function every 30 seconds:
setInterval( LoadFinance, 30000 );
Solution 2:
You can set it on an interval, like this:
$(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()
fires the first time after the interval (e.g. it first runs 30 seconds after the DOM loads here)... so for the that initial load, you still need to call it immediately as well via update()
.