代码更新时的 javascript localStorage.clear()

sto*_*ory 3 javascript local-storage

这个概念看起来很简单,但实现逻辑现在似乎令人畏惧。

我在我的应用程序中使用 localStorage,我想在更新代码时清除它。

有什么想法吗?

Joh*_*rak 5

您可以将代码版本存储在脚本中,并在加载脚本时进行比较:

var version = "1.0.4"; // remember to update this
if(localStorage.getItem("version") != version){
  localStorage.clear();
  localStorage.setItem("version", version);
}

$(function(){
  ...
Run Code Online (Sandbox Code Playgroud)

如果您不想手动跟踪版本,可以通过散列脚本来生成“版本”。一个好的散列是在易于实现(这有点排除 MD5,除非您愿意获取库)、散列大小(您不想在 localStorage 中存储脚本的副本)及其检测功能之间取得平衡(所以字符串长度可能不够)。

不用说,通过任何单一更改删除所有存储可能过于谨慎,因此我建议使用手动版本跟踪方法,或者(更好)重构应用程序,以便它可以使用以前的版本数据。