存储同步不会触发请求

时间:2014-05-09 07:44:12

标签: javascript extjs store

由于某种原因,我的store.sync()命令有时不会触发任何服务器请求。 我不确定为什么会这样。调用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());

输出已更改的字段,再次表明记录已被修改。

1 个答案:

答案 0 :(得分:1)

可能最简单的调试方法如下:

  1. 正常运行应用
  2. 在控制台类型

    store = "get reference to the store here";

    store.sync = Ext.Function.createInterceptor(store.sync,function(){debugger}, store); // all in one line

  3. 现在让商店变脏并启动同步。代码执行在执行store.sync之前停止,因此您可以从控制台调用类似的内容:

    this.getModifiedRecords();
    this.getNewRecords();
    this.getRemovedRecords();
    

    或者您可以检查当时存储的this变量。