Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript在rails中自动返回API请求值_Javascript_Jquery_Ruby On Rails_Api_Cron - Fatal编程技术网

使用javascript在rails中自动返回API请求值

使用javascript在rails中自动返回API请求值,javascript,jquery,ruby-on-rails,api,cron,Javascript,Jquery,Ruby On Rails,Api,Cron,我在application.js文件中有这个Jquery代码,当点击时,它会从API返回一个值。 这段代码可以工作,但我希望它能自动工作,而不必单击。我尝试了setInterval,但它似乎不起作用,因为它不更新值。我试图返回的值在API中不断变化,这就是为什么我希望它能够自动返回,就像你在股市网站上看到的那样 $('#kraken_btc_eur').click(function(){ $.get('https://api.kraken.com/0/public/Ticker?pair=X

我在application.js文件中有这个Jquery代码,当点击

时,它会从API返回一个值。 这段代码可以工作,但我希望它能自动工作,而不必单击。我尝试了setInterval,但它似乎不起作用,因为它不更新值。我试图返回的值在API中不断变化,这就是为什么我希望它能够自动返回,就像你在股市网站上看到的那样

$('#kraken_btc_eur').click(function(){
  $.get('https://api.kraken.com/0/public/Ticker?pair=XXBTZEUR', function(data){
    var kraken_btc_eur = data.result.XXBTZEUR.c[0]
    $("#kraken_btc_eur").html("<p>"+kraken_btc_eur+"</p>");
    // console.log(data.result.XXBTZEUR.c[0]);
  })
});

非常感谢您的指导。

最简单的方法是这样做:

$(document).ready(function(){
    setInterval(function(){
        $.get('https://api.kraken.com/0/public/Ticker?pair=XXBTZEUR', function(data){
            $("#kraken_btc_eur p").text(data.result.XXBTZEUR.c[0]);
        });
    }, 10000);
});

另外,我建议通过调用ajax call finish上的下一个更新来进一步改进它。

那么您希望它每x秒执行一次吗?是的,每10秒自动执行一次,因此,它可以获取新的最准确的值我使用一个名为httparty的gem来获取API数据,但是我意识到值不断变化,因此我需要不断获取值,但我不希望页面刷新。我知道这听起来像一个AJAX调用,我理解AJAX用于CRUD操作,但不用于获取基于api的值,这是一件事吗?这似乎不像rails的问题。。。您希望触发什么函数?负载单击?我希望执行上面的代码而不必单击。换句话说,我希望变量“var kraken_btc_eur”每3秒更新一次,并将更新后的值附加到html中。它不起作用并触发错误。似乎在setinterval内有一个click事件是不起作用的。你能给我一个ajax调用的例子吗?非常感谢,它很棒,你能解释一下为什么是“.text”而不是“.html”吗?此外,它每10秒创建一个新资源,有没有办法删除旧资源?或者也许是资源,这并不重要。我只是想知道旧资源是否存储在某个地方,是否会占用空间。它设置文本值而不尝试添加解析和添加HTML标记。这是一个微小的性能改进。您可以选择使用.html。至于资源,我不太明白你的意思。谢谢你的指导。对于Resources,只是在safari inspect元素中,我可以看到每次触发setInterval函数时,它都会在Resources选项卡中显示一个新的Resources,我只是想知道它是否存储在某个地方,或者我可以忽略它。但我想这应该是另一个问题。非常感谢你。