ExtJS 4:如何在重装商店时防止竞争条件?

时间:2011-11-04 09:54:42

标签: extjs store conditional-statements reload race-condition

当我在第一次加载完成之前第二次加载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的正确方法是什么,知道以后可以重新加载?

1 个答案:

答案 0 :(得分:0)

Javascript在大多数情况下是单线程的,因此不应该有任何方法让这些检查之间存储负载,所以我认为你没事。 Ext的代码在他们自己的源代码中进行这些检查,因此它可能是安全的。

我喜欢每隔一段时间阅读一次this question's responses,以便进行javascript线程的复习。