在javascript中保存ajax调用之间的状态
Save state between ajax calls in javasctipt
我想通过使用localStorage
实现从服务器数据检索的"缓存"。请求(requestData
)的参数将是唯一标识符。下面是我的代码:
App = {};
App.Service = function(name) {
this.name = name;
};
App.Service.prototype.sendRequest = function(requestData) {
// process request data somehow and store to local variable
var identifier = $.param(requestData);
$.ajax({
url: 'web/api',
success: function(data) {
// can identifier differ from calculated before ajax call?
// for example if someone else start this method in the same time?
localStorage.setItem(identifier, data);
},
error: function(jqXHR, textStatus, errorThrown) {
// handle error
},
type: "POST",
data: requestData
});
};
这里是我的问题:假设我已经启动了sendRequest方法几次。每个success
回调方法是在自己的identifier
上操作还是混合操作(换句话说,将错误的标识符分配给响应数据)?
您是否考虑过简单地创建一个数组,将其命名为var cache = []
,并在每次检索后将响应数据添加到其中?只需使用一些变量来跟踪您使用的最后一个索引,或者使用日期/时间,如果您想跟踪何时发出请求,与任何响应数据分开。
相关文章:
- 在Knockoutjs中的ViewModels之间共享变量状态
- 设置两个反应组件之间状态的正确方式
- new Datamap() 在调用之间保持内存的共享状态
- 在aspx页面c#之间传递/引用/发送变量/会话状态
- angular ui路由器卡在两个状态之间
- 在角度上不同控制器之间共享状态
- 两个类之间的状态
- UI 路由器 - 在状态之间转换时记住滚动位置
- 在 React/Redux 中管理同级组件之间的滚动状态
- 在状态之间传递对象
- JavaScript-使用sessionStorage保存文档之间共享的复选框状态
- 小黄瓜-在场景之间保持状态
- Ember JS中控制器之间共享状态的正确方式
- 如何在 CSS3 中的动画之间保持状态
- 使秒表在请求之间处于活动状态
- 在两个组件之间传输状态
- 如何使用 Angular JS 在状态之间导航
- 在两个或多个 UL 列表之间切换,如果单击一个列表,则其他列表会自动以初始状态返回,就像从未单击过一样
- 离子 - 在状态之间移动时,页面内容位于屏幕外部
- 如何在路由更改之间维护视图(控制器)状态