由于某种原因,我的 store.sync()
命令有时不会触发任何服务器请求。
我不知道为什么会发生这种情况。当调用sync()
时,记录总是会被修改。我还尝试过调试,并且简单地省略(跳过)同步命令,没有任何错误。此外,store.sync 上的失败回调永远不会被调用。
我不知道如何调试这个问题。请您帮忙。
console.debug(record.dirty); //TRUE
console.debug(record.isValid()); //TRUE
store.sync({
scope:this,
callback : function(batch, options) {
console.debug("ok"); //never reached
},
failure : function(batch, options) {
console.debug("failed"); //never reached
}
});
};
编辑
我还尝试过对 beforesync
事件进行调试,但即使触发 snync
也永远不会调用事件处理程序。
编辑
snyc
之前输出
console.debug(record.getChanges());
输出已更改的字段,再次表明记录已修改。
最佳答案
调试它的最简单方法可能如下:
- 正常运行应用
在控制台类型
store =“在此处获取对商店的引用”;
store.sync = Ext.Function.createInterceptor(store.sync,function(){debugger}, store);//全部在一行
现在使存储变脏并启动同步。代码执行在 store.sync
执行之前停止,因此您可以从控制台调用类似以下内容:
this.getModifiedRecords();
this.getNewRecords();
this.getRemovedRecords();
或者您可以检查此时实际上存储的this
变量。
关于javascript - 存储同步不会触发请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23559175/