我想感谢您提供的任何帮助.
由于所有的加密货币热潮,我想为我想到的网站制作一个USD到DOGE的转换器.这是我第一次使用jQuery.
该脚本转换$ 11 USD(我想提供的服务价格)并将其转换为比特币.然后它将比特币(价值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; });
Brad.. 9
你绝对不想放慢速度.您的问题是您没有按正确的顺序获取数据.一个简单的解决方案是连续生成您的AJAX请求,但之后您又浪费时间,因为您当然可以同时获得这两个请求.
这个最好的解决办法是使用jQuery的Deferred对象沿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 });
此外,如果您将来需要使用一系列Deferred,请参阅以下文章:https: //stackoverflow.com/a/5627301/362536