ExtJS4:如何在重新加载存储时防止竞争条件?
当我在第一次加载完成之前第二次加载我的TreeStore时,它失败了。TreeStore load()似乎不可重入 这就是我让第二个load()等待的原因: 问题是在我检查isLoading()和调用load()之间有一个竞争条件窗口ExtJS4:如何在重新加载存储时防止竞争条件?,extjs,store,conditional-statements,reload,race-condition,Extjs,Store,Conditional Statements,Reload,Race Condition,当我在第一次加载完成之前第二次加载我的TreeStore时,它失败了。TreeStore load()似乎不可重入 这就是我让第二个load()等待的原因: 问题是在我检查isLoading()和调用load()之间有一个竞争条件窗口 在ExtJS中加载TreeStore的正确方法是什么?知道以后可以重新加载它吗?Javascript在大多数情况下是单线程的,所以在这些检查之间不应该有任何方法加载存储,所以我认为您可以。Ext的代码在它们自己的源代码中进行此类检查,因此它可能是安全的 我喜欢每隔
在ExtJS中加载TreeStore的正确方法是什么?知道以后可以重新加载它吗?Javascript在大多数情况下是单线程的,所以在这些检查之间不应该有任何方法加载存储,所以我认为您可以。Ext的代码在它们自己的源代码中进行此类检查,因此它可能是安全的
我喜欢每隔一段时间阅读一次javascript线程的更新。谢谢,我不知道javascript是单线程的!那么没问题:)这里有一些关于同步事件的更多信息:
loadStore: function(){
var store=this.store;
if (store.isLoading()) this.addListener({
load: function(store,rec,success){
this.loadStore()
},
single: true
});
else store.load();
},