【发布时间】:2013-07-21 20:44:47
【问题描述】:
目前我不知道这是 Dojo 问题、浏览器问题还是两者兼而有之。
我有一个项目的 dojo.store.JsonRest 数据存储:
//Create stores
var json = new JsonRest(options);
//Memory store
var memory = Observable(new Memory({}));
//Observable cache
var cache = new Cache(json, memory);
物品的商店可能会同时与不同的用户共享,因此商店会通过发布以下内容定期更新:
store.query({..})
当我想添加一个新项目时,我使用
dojo.xhr('POST',{
url:...,
postData:...,
handleAs:'json',
headers:{...},
failOk:true,
timeout:15*1000
});
这很好用。但是,我想优雅地处理在失去互联网连接期间发帖的情况。特别是,我不希望商店在再次建立连接时自动尝试再次发布;我希望用户手动重试。
在 Chrome 中,POST 似乎已中止,并且无论随后再次建立 Internet 连接,POST 中的延迟对象似乎都被丢弃了,并且新项目永远不会添加到数据存储中。
在 Firefox 中,POST 似乎已中止。但是当刷新数据存储时,例如通过调用:
store.query({...})
POST 被中止的新项目然后被添加到存储中。当再次建立互联网连接时,就好像 query() 调用正在悄悄地将新项目添加到数据存储中。
我没有在 Chrome 中观察到这种行为。为了在不同的浏览器中获得统一的行为,我想知道是否有办法确保一旦 POST 被中止,它的存在和内存在 Firefox 中完全消失。
【问题讨论】:
标签: google-chrome firefox dojo