如何避免在js文件中重置全局变量

时间:2014-08-29 16:13:58

标签: javascript html5 local-storage

我正在尝试将localStorage用于小型站点(少于10页)中的全局变量。我想在js文件中声明变量,但不要在每次加载页面时重置它们。

除了阻止/重置另一个全局之外,有没有办法防止几行重新加载?

/** placed in a sj file **/
if(localStorage['lock'] != '1') {
  localStorage['val1'] = '0';
  localStorage['val2'] = '0';
  localStorage['val3'] = '0';

  localStorage['lock'] = '1';
}

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');

DEMO