我正在尝试使用 XMLHttpRequest 从我的网页上的天气服务 API 更新内容。
不幸的是,我不熟悉使用此 javascript 功能。我已经浏览了 mozilla 文档,但我仍然对如何从我的网页上的 API 更新信息感到有些困惑。
我的 Javascript 包括刷新功能和 addWeather 功能。刷新功能假设每小时刷新一次我网站上的 api 信息(这利用了我需要帮助的 xmlhttprequest)。addWeather 函数将 API 信息添加到 html 中,它确实运行良好。
这是Javascript:
window.onload = init;
function init() {
//populate the weather
addWeather();
//refresh the page every hour
setInterval(refreshPage(), 3600000);
}
//refresh the page information every hour
function refreshPage(){
//make new request to the webservice
var req = new XMLHttpRequest();
req.onload = addWeather();
}
//add the weather info from the weather service
function addWeather(){
jQuery(document).ready(function($) {
$.ajax({
url: "http://api.wunderground.com/api/6368023a57d122c7/geolookup/conditions/q/DominicanRepublic/Barahona.json",
dataType : "jsonp",
success : function(parsed_json) {
var location = parsed_json['location']['city'];
var temp = parsed_json['current_observation']['temp_c'];
var weather = parsed_json['current_observation']['weather'];
var humid = parsed_json['current_observation']['relative_humidity'];
var wind_direction = parsed_json['current_observation']['wind_dir'];
var wind_speed = parsed_json['current_observation']['wind_kph'];
var wind_string = wind_direction + " " + wind_speed + " Km/h";
document.getElementById("weather").innerHTML = "Weather " + weather;
document.getElementById("temp").innerHTML = "Tempurature " + temp + "°C";
document.getElementById("hum").innerHTML = "Humidity " + humid;
document.getElementById("wind").innerHTML = "Wind " + wind_string;
}
});
});
}