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

标签 javascript scope

假设我稍后将使用 AJAX 调用来呈现数据,那么存储数据的最佳方式是什么? success 函数中的数据并非总是可用。 localStorage 是否被认为是最佳实践?

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

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

我知道应该避免 window.dataVariable

最佳答案

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

在我看来,将其存储在本地存储中不是一个好主意,因为还需要处理序列化/反序列化。

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

示例:

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


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

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

关于javascript - 存储稍后将使用的数据的最佳方式(Vanilla-JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48259273/

相关文章:

javascript - 从子 Javascript 访问父方法

PHP:当前函数是否在对象内部运行?

javascript - 如何在 PHP 中调用 JavaScript 函数?

javascript - RTCPeerConnection 如何使用 STUN/TURN 服务器阵列?

java - Spring Java 配置 : how do you create a prototype-scoped @Bean with runtime arguments?

node.js - 从 then 函数内访问 Promise 对象

python - Python 'for' 循环中的作用域

javascript - 在 Sails.js 中从 PostgreSQL 获取 BYTEA

javascript - JQuery - 页面不重新加载

javascript - 在 Angularjs 中捕获文档级按键事件