存储稍后将使用的数据的最佳方式(Vanilla-JavaScript)

时间:2018-01-15 08:29:51

标签: javascript scope

存储数据的最佳方法是什么?比如我后来用来呈现数据的AJAX调用?并不总是可以使用success函数中的数据。 localStorage被认为是最佳做法吗?

localStorage.setItem("username", "John");
localStorage.getItem("username");

理想情况下,我会使用Angular或任何其他处理此问题的框架,但是当我使用vanilla JavaScript时该怎么做?

我知道应该避免使用window.dataVariable

1 个答案:

答案 0 :(得分:1)

不鼓励window.dataVariable的原因是它使用变量污染全局命名空间,并且可能会在其他地方意外覆盖。

在我看来将它存储在localstorage中是一个坏主意,因为序列化/反序列化也需要处理。

处理此问题的一种简单方法是在窗口对象上创建自定义命名空间,该命名空间将成为存储数据以供将来使用的指定位置。

样品:

// Instantiate a namespace object before the AJAX runs
window._cache = {};


// Once AJAX call completes,
window._cache.dataVariable = data;

这将确保您的数据以后可用,而不会污染全局命名空间。 (尽管必须注意确保变量只在需要的地方以正确的顺序添加/修改)