我正在努力实现一个非常简单的程序但由于我的技能和知识而无法完成。 我所拥有的内容=> 我从服务器检索json供稿并且工作正常。
我需要什么=> 一旦检索到json Feed,就将其添加到sessionStorage,这样当我再次回到此页面时(在同一会话中)数据应该从sessionStorage中提取,而不是通过Ajax从服务器中提取。希望它确实有意义。
代码是:
$(document).ready(function () {
if (window.sessionStorage.getItem("weather") === null) {
$.ajax({
url: 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%3D24553463%20and%20u%20%3D%20"c"&format=json&diagnostics=true',
async: false,
callback: 'callback',
crossDomain: true,
contentType: 'application/json; charset=utf-8',
type: 'POST',
dataType: 'jsonp',
timeout: 5000,
success: function (data, status) {
if (data !== undefined && data.query.results.channel !== undefined) {
$('#weather').append('<div class="wcode">' + data.query.results.channel.item.condition.code + '</div><div class="temperature">' + data.query.results.channel.item.condition.temp + '°C</div><div class="details">' + data.query.results.channel.wind.speed + '/с<br/>' + data.query.results.channel.atmosphere.pressure + '<br/>' + data.query.results.channel.atmosphere.humidity + '% humid.</div>');
}
var output = $('#weather');
window.sessionStorage.setItem("weather", JSON.stringify(output));
}
});
} else {
var jsData = window.sessionStorage.getItem("weather", JSON.stringify(output));
}
});
小提琴在这里:http://jsfiddle.net/j8QGv/
请用小提琴进行修改,以便其他用户可以使用代码作为示例。
非常感谢你的帮助...
答案 0 :(得分:2)
以下是如何使用会话存储
if (window.sessionStorage.getItem("weather") === null) {
$.ajax({
url: 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%3D24553463%20and%20u%20%3D%20"c"&format=json&diagnostics=true',
async: false,
callback: 'callback',
crossDomain: true,
contentType: 'application/json; charset=utf-8',
type: 'POST',
dataType: 'jsonp',
timeout: 5000,
success: function (data, status) {
if (data !== undefined && data.query.results.channel !== undefined) {
$('#weather').append('<div class="wcode">' + data.query.results.channel.item.condition.code + '</div><div class="temperature">' + data.query.results.channel.item.condition.temp + '°C</div><div class="details">' + data.query.results.channel.wind.speed + ' м/с<br/>' + data.query.results.channel.atmosphere.pressure + ' мм рт. ст.<br/>' + data.query.results.channel.atmosphere.humidity + '% влаж.</div>');
}
var output = $('#weather').html(); // get the HTML
window.sessionStorage.setItem("weather", output); // store it in session
}
});
} else {
// this isn't how you use the getter method
//var jsData = window.sessionStorage.getItem("weather", JSON.stringify(output));
var jsData = window.sessionStorage.getItem("weather");
$('#weather').html(jsData);
}