jQuery Ajax请求每30秒一次
我有这段代码,但是当有人在我的网站上时,值可能会改变。我需要每隔30秒左右更新一次财务部门。这能做到吗jQuery Ajax请求每30秒一次,jquery,ajax,yql,Jquery,Ajax,Yql,我有这段代码,但是当有人在我的网站上时,值可能会改变。我需要每隔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=ht
$(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() {
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();
});
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"
});
});
}
在间隔后第一次激发(例如,在此处加载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);
您可以将代码放在单独的函数中,如下所示:
$(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();
});
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 );
不要将字符串传递给
setInterval()
,请使用直接引用<代码>设置间隔(LoadFinance,30000)代码>哎哟<代码>设置间隔(LoadFinance,30000)代码>避免需要计算的文本代码。@Alex-事实上,确实如此。如果可以避免的话,千万不要传递字符串。我可以随时重写你的函数,任何全局定义的函数都可以工作。如果直接引用在它自己的范围内,则不能重写它。如果您使用字符串是出于安全考虑……您可以将其反向使用。@Nick-实际上,我通常在不需要参数的情况下使用直接引用,我在上面的建议中选择字符串的原因是“一时冲动”—事情……)但是我明白你关于函数范围的安全性的观点。我会记住的。谢谢你的课!到目前为止,应该知道在这种情况下使用setInterval
是一个非常糟糕的主意。不要忘记选择答案。请回到你问过的大约50个问题中,并接受一些答案。道歉。行。我现在很忙,哈哈