現時点では、これが 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 が中止されたように見え、その後インターネット接続が再度確立されても、POST からの遅延オブジェクトが破棄されたように見え、新しい項目がデータストアに追加されません。
Firefox では、POST が中止されたように見えます。ただし、データストアが更新されると、たとえば次のように呼び出されます。
store.query({...})
その後、POST が中止された新しいアイテムがストアに追加されます。これは、インターネット接続が再び確立されたときに、query() 呼び出しが静かに新しいアイテムをデータストアに追加しているようなものです。
Chrome でこの動作を観察していません。また、さまざまなブラウザ間で動作を統一するために、POST が中止されると、その存在とメモリが Firefox で完全に消去されるようにする方法があるかどうかを知りたいです。