在本地存储 JavasScript 设置

Storing JavasScript settings locally

本文关键字:JavasScript 设置 存储      更新时间:2023-09-26

使用HTML5和本地存储,JavaScript可以用来保存网页的状态吗?

例如,某些站点具有最有可能由 JS 控制的increase font size按钮。如何保存属性,以便在刷新时大小保持不变?还是在没有 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相同,但它是持久性的。

更好/更容易的是sessionStoragelocalStorage.问题是旧浏览器不支持它们。

相反,处理 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'));