我有一个简单的问题:我正在使用this函数从CryptoCompare获取价格,现在我想设置刷新数据的间隔而不刷新页面。所以我尝试了这段代码:
<script>
getData('dash', 'https://min-api.cryptocompare.com/data/price?fsym=DASH&tsyms=USD');
function getData(prefix, url) {
$.getJSON(url, function(data) {
$.each(data, function(key, val) {
$('.' + prefix + '-' + key.toLowerCase()).html(val);
});
});
}
setInterval(getData, 3000);
$(function() {
getData();
});
</script>
但这对我不起作用。你能帮我吗?
答案 0 :(得分:0)
您有一些复杂的代码。我认为您打算要每3秒调用一次访存。
function getData(prefix, url) {
$.getJSON(url, function(data) {
$.each(data, function(key, val) {
$('.' + prefix + '-' + key.toLowerCase()).html(val);
});
});
}
这定义了您的功能。您有一个示例通话
getData('dash', 'https://min-api.cryptocompare.com/data/price?fsym=DASH&tsyms=USD');
尽管您使用的setInterval不正确,请参见https://www.w3schools.com/jsref/met_win_setinterval.asp
这里有2行
setInterval(getData, 3000);
$(function() { getData(); });
这是不正确的,getData只是函数的名称。 setInterval函数应该将匿名函数带有已定义的参数,例如
setInterval($(function() {
getData('dash', 'https://min-api.cryptocompare.com/data/price?fsym=DASH&tsyms=USD');
}), 3000);
对于您的JS小提琴来说,这对我有用(删除了jquery函数,并替换为常规js lambda)
function getData(prefix, url) {
$.getJSON(url, function(data) {
$.each(data, function(key, val) {
$('.' + prefix + '-' + key.toLowerCase()).html(val);
});
});
}
setInterval(function() {
getData('btc', 'https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD');
}, 3000);