최신 HTML5 API를 사용할 때주의해야 할 점은 사용자가 현재 사용중인 브라우저에서 지원되는지 여부입니다. Modernizer과 같은 라이브러리를 사용하여 기능을 감지 할 수 있습니다.
Aspnet 세션과 로컬 저장소가 같지 않습니다. 로컬 저장소를 사용하여 목표가 유지되면 상태를 유지 관리 할 수 있습니다.
과거에는 로컬 저장소 대신 데이터를 저장하는 쿠키 기반 방식을 채택했습니다. 어쨌든 쿠키가 포함 된 모든 브라우저를 안전하게 타겟팅하기 위해. 어쩌면 도움이 될지도 모른다. 아래 코드는 JSON2이 필요합니다.
var Util = (function() {
return {
// Wrapper module for getting and setting cookies
CookieManager: {
set: function (name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
}
else var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
},
get: function (name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
},
erase: function (name) {
this.set(name, "", -1);
}
}
}
})();
var UserPrefs = (function() {
var cookieName = 'UsrPrf';
var data = {};
return {
set: function (propName, value) {
if (data == null) data = {};
data[propName] = value;
},
get: function (propName, defaultValue) {
if (data == null) {
data = {};
return defaultValue;
} else {
return data[propName] == undefined ? defaultValue : data[propName];
}
},
load: function() {
try {
data = JSON.parse(Util.CookieManager.get(cookieName));
} catch (e) {
data = {};
}
return data;
},
save: function (ttl) {
if (!ttl) ttl = 30;
Util.CookieManager.set(cookieName, JSON.stringify(data), ttl);
}
};
})();
위대한 유틸리티 기능이지만 HTML5를 타겟팅하고 있으므로 localStorage를 사용합니다. – Asdfg