Javascript 设置json调用的间隔以重新加载新图像
我正在尝试设置从Flickr API重新加载新图像的时间间隔 为了使用Javascript 设置json调用的间隔以重新加载新图像,javascript,jquery,Javascript,Jquery,我正在尝试设置从Flickr API重新加载新图像的时间间隔 为了使用setInterval获取新图像,我需要添加什么 这是我的代码: $(document).ready(function(){ $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?", { tagmode: "any", format: "json" }, f
setInterval
获取新图像,我需要添加什么
这是我的代码:
$(document).ready(function(){
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
{
tagmode: "any",
format: "json"
},
function(data) {
var rnd = Math.floor(Math.random() * data.items.length);
var image_src = data.items[rnd]['media']['m'].replace("_m", "_b");
$('.main').css('background-image', "url('" + image_src + "')");
});
});
是否要以设定的间隔加载不同的随机图像 我认为这应该适合你:
var loadNewImage = function() {
var rnd = Math.floor(Math.random() * data.items.length);
var image_src = data.items[rnd]['media']['m'].replace("_m", "_b");
$('.main').css('background-image', "url('" + image_src + "')");
}
setInterval(loadNewImage(), 3000);
这将每3秒(3000毫秒)设置一个新的背景图像,因此您可能需要更改间隔时间,或者将其与顶部的var连接,如果您想:
var imageInterval = 10000;
setInterval(loadNewImage(), imageInterval);
我会使用
setTimeout
而不是setInterval
,以防由于网络延迟而获取映像所需的时间超过[interval]秒
$(document).ready(function() {
var INTERVAL_IN_MS = 1000; // wait 1 second
function getImage() {
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?", {
tagmode: "any",
format: "json"
}, function(data) {
var rnd = Math.floor(Math.random() * data.items.length);
var image_src = data.items[rnd]['media']['m'].replace("_m", "_b");
$('.main').css('background-image', "url('" + image_src + "')");
// start the timeout countdown only after the previous image has been fetched and displayed
window.setTimeout(getImage, INTERVAL_IN_MS);
});
}
window.setTimeout(getImage, INTERVAL_IN_MS);
});
使用
loadNewImage
而不是loadNewImage()
作为setInterval
的第一个参数loadNewImage()
执行该函数,并使用其返回值(在本例中未定义)作为setInterval
的第一个参数,这是不正确的。获取未捕获的语法错误:对于var loadNewImage=function()行,意外的令牌变量,我没有得到这样的错误。你能粘贴你的代码吗?