AJAX实例——DOGECOIN价格查看标签


AJAX实例——DOGECOIN价格实时查看标签

题目详情

image-20210416191042400

以上这是一个显示狗狗币(DOGE)实时价格的标签

其返回json数据的接口地址:

https://chain.so/api/v2/get_price/DOGE/USD

要求

  • 样式类似即可,可以自己发挥,保持简洁美观。

  • 按钮功能:因为接口返回的价格数据会隔一段时间更新一次,要求点击change按钮:价格更新为最新价格。

  • 当前价格 > 0.06133时颜色为**”red”,其余状态为“#0ECB81”**

解决思路

0.完成页面布局以及查看JSON数据

JSON数据

{
  "status" : "success",
  "data" : {
    "network" : "DOGE",
    "prices" : [
      {
        "price" : "0.276159",
        "price_base" : "USD",
        "exchange" : "binance",
        "time" : 1618570320
      }
    ]
  }
}

嵌套如下

<body onload="loadXMLDoc()">
    <div class="wrap">
        <div class="card">                
               <h1>DOGE/USD</h1>
               <ul class="price">
                   <li id="myDiv" class="bigger"></li>
                   <li id="exchange"></li>
               </ul> 
               <button type="button" onclick="loadXMLDoc()">Change</button>          
        </div>        
    </div>
</body>
1.创建XMLHttpRequest对象

其语法为

variable=new XMLHttpRequest();

老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:

variable=new ActiveXObject("Microsoft.XMLHTTP");

为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject :

var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
2.向服务器发送请求

如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:

xmlhttp.open("GET","https://chain.so/api/v2/get_price/DOGE/USD",true);
xmlhttp.send();
3.将得到的responseText转化为js对象

使用JSON.parse()函数

var res=JSON.parse(xmlhttp.responseText);
4.载入HTML元素
document.getElementById("myDiv").innerHTML=res.data.prices[0].price; 
document.getElementById("exchange").innerHTML=res.data.prices[0].exchange;
5.字体变色处理

在style里面预设两个类名

.bigger{
                color: red;
                font-size: 30px;
                font-weight: bold;
            }
.smaller{
                color: #0ECB81;
                font-size: 30px;
                font-weight: bold;
            }

并在js里面对得到的price判断大小

if(res.data.prices[0].price> 0.06133){
                myDiv.className="bigger";
            }
            else{
                myDiv.className="smaller";
            }
    }
6.函数调用

根据题目要求可以得知,页面加载完成以及点击“change”按钮时应该调用函数因此

在body和button上做如下处理

<body onload="loadXMLDoc()">
<button  onclick="loadXMLDoc()">

文章作者: CJ Hugh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 CJ Hugh !
  目录