【问题标题】:how to check if api variables are updated in js如何检查 api 变量是否在 js 中更新
【发布时间】:2021-08-22 20:25:39
【问题描述】:

我已经使用 rapidapi covid api 制作了一个 covid 网站应用程序,所以现在我正在苦苦挣扎,如果 covid 统计数据没有更新而不更改日期,我不知道如何编写代码,感谢反馈。这是我的代码:

  const settings = {
  async: true,
  crossDomain: true,
  url: "https://covid-193.p.rapidapi.com/statistics?country=GEORGIA",
  method: "GET",
  headers: {
    "x-rapidapi-key": "bc0019aac3msh86f039dbf1157b6p1b7843jsn2aaad402201d",
    "x-rapidapi-host": "covid-193.p.rapidapi.com",
  },
};

$.ajax(settings).done(function (response) {


  console.log(response);
  $("#date").text(response.response[0].day);
  $("#infected").text(
    Number(response.response[0].cases.new)
      .toString()
      .replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")
  );
  $("#death").text(
    Number(response.response[0].deaths.new)
      .toString()
      .replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")
  );
  $("#tests").text(
    Number(response.response[0].tests.total)
      .toString()
      .replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")
  );
  $("#country").text(response.parameters.country);
  $("#recovered").text(
    Number(response.response[0].cases.recovered)
      .toString()
      .replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")
  );
  $("#active").text(
    Number(response.response[0].cases.active)
      .toString()
      .replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")
  );
  $("#totald").text(
    Number(response.response[0].deaths.total)
      .toString()
      .replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")
  );
});

enter code here

【问题讨论】:

    标签: javascript json api variables


    【解决方案1】:

    在更新每个值之前,请检查它是否与上次不同。然后仅在其中一个值发生更改时更新日期。

    function get_number(str) {
      return str.toString()
        .replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
    }
    
    $.ajax(settings).done(function(response) {
      console.log(response);
      let changed = false;
      let cur = response.response[0];
      let new_infected = get_number(cur.cases.new);
      if (new_infected != $("#infected").text()) {
        changed = true;
        $("#infected").text(new_infected);
      }
      let new_deaths = get_number(cur.deaths.new);
      if (new_deaths != $("#death").text()) {
        $("death").text(new_deaths);
        changed = true;
      }
      let new_tests = get_number(cur.tests.total);
      if (new_tests != $("#tests").text()) {
        $("tests").text(new_tests);
        changed = true;
      }
      let new_country = response.parameters.country;
      if (new_country != $("#country").text()) {
        $("#country").text(new_country);
        changed = true;
      }
      let new_recovered = get_number(cur.cases.recovered);
      if (new_recovered != $("#recovered").text()) {
        $("#recovered").text(new_recovered);
        changed = true;
      }
      let new_active = get_number(cur.cases.active);
      if (new_active != $("#active").text()) {
        $("#active").text(new_active);
        changed = true;
      }
      let new_totald = get_number(cur.deaths.total);
      if (new_totald != $("#totald").text()) {
        $("#totald").text(new_totald);
        changed = true;
      }
      if (changed) {
        $("#date").text(response.response[0].day);
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-19
      • 2012-02-14
      • 2010-10-25
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      • 2014-01-30
      相关资源
      最近更新 更多