我正在制作一个简单的比特币价格股票概览网站,我正在使用8种不同比特币交易所的API。都是JSON。
<?php
function getPrice($url){
$decode = file_get_contents($url);
return json_decode($decode, true);
}
$blockchain = getPrice('https://blockchain.info/ticker');
$blockchainPrice = $blockchain["USD"]["last"];
?>
我只是在表格中回应它
<table>
<tr> <th> Current prices</th><th> Volume</th> </tr>
<tr>
<td>Blockchain.info</td>
<td>$<?php echo $blockchainPrice; ?></td>
</tr>
</table>
但是,我需要每20秒实时更新一次价格,但在这段代码中,每当我刷新,我得到一个改变的价格,我会迎合大量观众,我不想打api呼叫限制,所以我希望价格每20秒更新一次。
我尝试使用ajax实时更新值,但它无法正常工作
这是我的ajax代码
$.ajax({
url: 'https://blockchain.info/ticker',
dataType: 'json',
cache: false,
success: function(result) {
$('test').html(result.last);
}
});
}, 20000);
我做了一个id =“test”的div
我期待价格得到回应,并且每20秒更新一次。但它没有发生
答案 0 :(得分:2)
这是 工作的代码:
function update() {
$.getJSON('https://blockchain.info/ticker').done(function(res) {
$('#test').html(res.last);
});
}
var interval = window.setInterval(update, 20000);
它之所以没有,是因为blockchain.info没有针对其股票代码API的CORS头,也没有JSONP。这意味着他们不希望您能够通过javascript使用它,并且他们希望能够限制服务器发出的请求。
但是,您可以做的是让您的网络服务器每x秒使用一次自动收报机API。然后在javascript中,让您的客户每隔20秒向您的服务器发送一个AJAX请求。祝你好运:)