我正在尝试将localStorage用于小型站点(少于10页)中的全局变量。我想在js文件中声明变量,但不要在每次加载页面时重置它们。
除了阻止/重置另一个全局之外,有没有办法防止几行重新加载?
/** placed in a sj file **/
if(localStorage['lock'] != '1') {
localStorage['val1'] = '0';
localStorage['val2'] = '0';
localStorage['val3'] = '0';
localStorage['lock'] = '1';
}
答案 0 :(得分:0)
原生Local Storage没有任何锁定功能。
你找到的解决方案很简洁。它具有快速的优点(因为它只检查一个密钥)。
但是,您可能希望在已经完成的工作之上添加一小部分抽象。但这基本上是品味问题(这里的性能影响很小)。
function freezeInLocalStorage(key, value) {
if (typeof localStorage[key] !== 'string') {
localStorage[key] = value;
}
}
freezeInLocalStorage('val1', '0');
freezeInLocalStorage('val2', '0');
freezeInLocalStorage('val3', '0');