每隔30秒jQuery Ajax请求

我有这段代码,但是当某人在我的网站上时,这些值可能会发生变化。 我需要每隔30秒左右更新一次#finance div。 可以这样做吗?

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

您可以将代码放在一个单独的函数中:

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

祝好运! ;)

您可以按间隔设置它,如下所示:

 $(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()在间隔第一次触发(例如,它在DOM加载后第一次运行30秒)…因此对于初始加载,您仍然需要立即通过update()调用它。

绝对:

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