当我在第一次加载完成之前第二次加载TreeStore时,它会失败。 TreeStore load()似乎不是可重入的。
这就是我正在做的第二次load()等待:
loadStore: function(){
var store=this.store;
if (store.isLoading()) this.addListener({
load: function(store,rec,success){
this.loadStore()
},
single: true
});
else store.load();
},
问题是在我检查isLoading()和调用load()的时间之间有一个竞争条件的窗口。
在ExtJS中加载TreeStore的正确方法是什么,知道以后可以重新加载?
答案 0 :(得分:0)
Javascript在大多数情况下是单线程的,因此不应该有任何方法让这些检查之间存储负载,所以我认为你没事。 Ext的代码在他们自己的源代码中进行这些检查,因此它可能是安全的。
我喜欢每隔一段时间阅读一次this question's responses,以便进行javascript线程的复习。