javascript API调用会导致旧数据

时间:2015-03-21 05:41:42

标签: javascript jquery html ajax api

我有一个天气网络api,我需要在网站上显示当前城市的天气报告。每当代码调用API时,它只会产生旧数据。数据永远不会改变,当我运行web API URL时浏览器它的结果正是我想要的。 请帮助我解释缓存数据的原因。

的WebAPI

http://api.openweathermap.org/data/2.5/weather?lat=26.894049&lon=80.942686&mode=json

我的代码

$.getJSON('http://api.openweathermap.org/data/2.5/weather?lat=' + lat + '&lon=' + lon + 'mode=json&rand=' + Math.random(), function (data) {
    var wind = {};
    var temp = {};
    wind = data.wind;
    temp = data.weather;
    var clouds = '%' + data.clouds.all;
    var description = data.weather[0].description;
    var temp = data.main.temp - 273.15;
    var humidity = data.main.humidity + '%';
    var icon = data.weather[0].icon;
    weatherImg = "<img height=\"45\" width=\"45\" style=\"border: medium none; width: 45px; height: 45px;position:relative;top:-10px; background: url('http://openweathermap.org/img/w/" + icon + ".png') repeat scroll 0% 0% transparent;\" alt=\"title\" src=\"http://openweathermap.org/images/transparent.png\">";
    document.getElementById('weatherImg').innerHTML = weatherImg;
    document.getElementById('current_temp').innerHTML = (temp) + '&deg;C';
    document.getElementById('current_wind').innerHTML = ' ; ' + wind.speed + 'Km/h';
    document.getElementById('city_name').innerHTML = data.name;
});

2 个答案:

答案 0 :(得分:0)

测试你的代码对我工作正常api响应很慢但除此之外每件事看起来都不错

htttp://jsfiddle.net/navneetccna/un2u5j0v

答案 1 :(得分:0)

不应该在脚本前缀模式中使用&amp ;.你应该把它扔进一个小提琴/更具体。你说你得到旧数据。你得到的旧JSON响应根本没有变化,或者很少发生变化吗?