繁体   English   中英

如何设置从API获取数据的时间间隔(jQuery)

[英]How to set interval for get data from API (jQuery)

我有一个简单的问题:我正在使用函数从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>

但这对我不起作用。 你能帮我吗?

您有一些复杂的代码。 我认为您打算要每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

你这里有两行

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM