JS“升级”模式

时间:2016-10-03 12:20:10

标签: javascript local-storage upgrade

当某些内容(在我的情况下是一个过滤器)存储在客户端(例如localStorage)并且您需要为每个用户/版本运行一次脚本以迁移您存储的数据时,是否存在任何模式。例如,在您确定需要为每个环境分隔过滤器一段时间后,最初在localStorage中使用密钥myFilter保存了一个过滤器,因此您需要单独的dev-myFilter,{{1您更新代码以使用依赖于环境的过滤器,但是有些用户使用旧的train-myFilter并且您希望使用下一个已部署的版本来运行脚本,如果有,则会更新已保存过滤器的密钥之一。

问题是 - 那是什么样的模式/最佳实践?

1 个答案:

答案 0 :(得分:1)

我不了解"最佳做法",但明显的技术解决方案,就像任何API或存储格式一样,是在数据旁边存储版本号。如果您从一开始就没有这样做,则在缺席时假设版本== 1.

如果版本之间的数据结构如此唯一,您可以避免这种情况,只需通过检查即可确定版本。

无论哪种方式,只要您发现用户的数据是旧格式,您就可以执行翻译。

这样做的缺点是你必须继续检查;对于Web应用程序,这不太可能成为瓶颈,但如果您可以从一开始就使数据向前兼容,那么您可以在每个请求上节省一些处理时间。但是为了让数据变得有用,无论如何你都必须阅读它,所以只要你希望保持向后兼容性,一点点分支就不太可能是一个大问题了。