存储数据的最佳方法是什么?比如我后来用来呈现数据的AJAX调用?并不总是可以使用success
函数中的数据。 localStorage
被认为是最佳做法吗?
localStorage.setItem("username", "John");
localStorage.getItem("username");
理想情况下,我会使用Angular或任何其他处理此问题的框架,但是当我使用vanilla JavaScript时该怎么做?
我知道应该避免使用window.dataVariable
。
答案 0 :(得分:1)
不鼓励window.dataVariable
的原因是它使用变量污染全局命名空间,并且可能会在其他地方意外覆盖。
在我看来将它存储在localstorage中是一个坏主意,因为序列化/反序列化也需要处理。
处理此问题的一种简单方法是在窗口对象上创建自定义命名空间,该命名空间将成为存储数据以供将来使用的指定位置。
样品:
// Instantiate a namespace object before the AJAX runs
window._cache = {};
// Once AJAX call completes,
window._cache.dataVariable = data;
这将确保您的数据以后可用,而不会污染全局命名空间。 (尽管必须注意确保变量只在需要的地方以正确的顺序添加/修改)