freecodecamp API需要永远加载,或根本不加载

时间:2018-03-29 14:29:28

标签: javascript jquery html

JS / Jquery:我认为问题是因为我没有将我的代码包装在document.ready()中,但是我尝试这样做并且发生了同样的问题。有时天气,温度和图像,尤其是图像,需要超过5分钟才能加载。这是在codepen中创建的。

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(function(position) {
    $.getJSON("https://fcc-weather-api.glitch.me/api/current?lat=" + position.coords.latitude + "&lon=" + position.coords.longitude, function(json) {
      $("#current-weather").html(json.weather[0].main);
      var temp = json.main.temp;
      var fahtemp = temp * (9 / 5) + 32;
      var celtemp = (temp - 32) * (5 / 9);
      
      $("#temp").text(Math.round(json.main.temp) + " °C");
      $("#image").attr("src", json.weather[0].icon);
      
      $("#fah").on("click", function() {
        $("#temp").text(Math.round(fahtemp) + " °F");
      });
      
      $("#cel").on("click", function() {
        $("#temp").text(Math.round(celtemp) + " °C");
      });
    });
  });
}

$(document).ready(function() {
  $.get("https://api.ipdata.co", function(response) {
    $("#location").html(response.city + ", " + response.region);
  }, "jsonp");
});
<script src="https://fcc-weather-api.glitch.me/"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://api.ipdata.co"></script>

2 个答案:

答案 0 :(得分:1)

API可以具有可变速度,具体取决于API的主机。有可能它与你的代码无关,但是他们的服务器很难跟上。

答案 1 :(得分:0)

我相信您的地理定位请求需要很长时间。查看PositionOptions并为地理位置请求添加超时。

您可能还想为地理位置请求添加最大年龄选项。