非常感谢您提供的任何帮助。
随着加密货币的热潮,我想为我想要的网站制作一个 USD 到 DOGE 转换器。这是我第一次使用 jQuery。
该脚本将 11 美元(我想要提供的服务价格)转换为比特币。然后它将比特币(值(value) 11 美元)转换为狗狗币。
问题是,大约有一半的时间,脚本返回并添加到“价格”h1 文本的数字是 0。如何给 JSON 解析更多时间,以便脚本不会将 0 显示为量?还是还有其他我不知道的问题?
var $BTCUSD = '';
var $BTC = '';
var $DOGEBTC = '';
var $DOGE = '';
var $price = '';
$.getJSON('http://www.cryptocoincharts.info/v2/api/tradingPair/btc_usd', function(btc) {
$BTCUSD = btc.price;
$BTC = 11 / $BTCUSD;
});
$.getJSON('http://www.cryptocoincharts.info/v2/api/tradingPair/doge_btc', function(doge) {
$DOGEBTC = doge.price;
$DOGE = $BTC / $DOGEBTC;
$price = parseFloat($DOGE.toPrecision(2));
// output
document.getElementById('price').innerHTML = $price;
});
最佳答案
你绝对不想放慢任何事情。您的问题是您没有以正确的顺序获取数据。一个简单的解决方案是串行发出 AJAX 请求,但这会浪费时间,因为您当然可以同时获取这两个请求。
最好的解决方案是使用 jQuery's Deferred object以及jQuery.when()
.
$.when(
$.getJSON('http://www.cryptocoincharts.info/v2/api/tradingPair/btc_usd'),
$.getJSON('http://www.cryptocoincharts.info/v2/api/tradingPair/doge_btc')
).done(function(btc, doge) {
// This gets called when both URLs have been retrieved.
$('#price').text((11/btc.price) / doge.price); // Modify as necessary
});
此外,如果您将来需要使用整个 Deferreds 数组,请参阅这篇文章:https://stackoverflow.com/a/5627301/362536
关于javascript - 减慢 jQuery JSON 解析速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21355925/