放慢jQuery JSON解析?

 影子的影子的家 发布于 2023-01-31 13:23

我想感谢您提供的任何帮助.

由于所有的加密货币热潮,我想为我想到的网站制作一个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

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有