有了 HTML5 和本地存储,JavaScript 可以用来保存网页的状态吗?
例如,一些网站的increase font size
按钮很可能是用 JS 控制的。如何保存属性,以便在刷新时大小保持不变?或者这是在没有 JS 的情况下完成的?
有了 HTML5 和本地存储,JavaScript 可以用来保存网页的状态吗?
例如,一些网站的increase font size
按钮很可能是用 JS 控制的。如何保存属性,以便在刷新时大小保持不变?或者这是在没有 JS 的情况下完成的?
您最好的选择可能是使用localStorage
,除非您不希望设置在新会话中持续存在(sessionStorage
在这种情况下您会使用)。如果您有多个设置,则可以存储设置的序列化表示。
例如
var settings = {
fontSize: '11px',
otherConfig: 'test'
};
localStorage.setItem('settings', JSON.stringify(settings));
//then you can retrieve it
settings = JSON.parse(localStorage.getItem('settings'));
console.log(settings.fontSize); //11px
请注意,如果您希望设置在用户从多台计算机连接时保持不变,则必须使用一些服务器端支持。
是的,它是用 Javascript 完成的。您可以使用
这是一个全局对象 ( sessionStorage
),它维护一个在页面会话期间可用的存储区域。只要浏览器打开并在页面重新加载和恢复后仍然存在,页面会话就会持续。在新选项卡或窗口中打开页面将导致启动新会话。
localStorage
sessionStorage
与应用同源规则相同,但它是持久的。
更好/更容易的是sessionStorage
and localStorage
。问题是旧浏览器不支持它们。
相反,处理 cookie 可能是一场噩梦,但它们也适用于旧浏览器。
Yes 可以将状态保存到 localStorage。
假设你有一个对象:
var settingsObj={
pageClass:'bigFont',
widgetSortOrder : [1,5,3,7]
}
您可以通过对对象进行字符串化,将整个对象保存到一个本地存储键中。当页面加载时,您会看到该键是否存在于 localStorage 中,并让您的 javascript 对这些设置执行任何操作
要字符串化和存储:
localStorage.setItem('mySettings', JSON.stringify(settingsObj) );
从存储中检索并转换为 js 对象
var settings=JSON.parse(localStorage.getItem('mySettings'));