立即自动节省微风

时间:2013-04-16 16:45:51

标签: javascript knockout.js breeze

我正在使用Knockout和breezejs实现一个表单,我希望在用户更改焦点时保存每个字段。因此,每次更改都意味着对服务器的一次保存调用问题是,如果用户在上一次保存调用完成时进行了一些更改,那么当服务器响应时,第一次调用中未包含的更改将恢复为原始值。

这是我的经理的配置:

var manager = new breeze.EntityManager({
    serviceName : "/api/UserCentre/",
    saveOptions: new breeze.SaveOptions({allowConcurrentSaves: true})
});
manager.enableSaveQueuing(true);

1 个答案:

答案 0 :(得分:2)

删除saveOptions,你会没事的。 “SaveQueuing”和allowConcurrentSaves是竞争方法。

我强烈反对使用allowConcurrentSaves,因为它可能导致不稳定的数据库插入和更新。这就是默认为false的原因。这是一个我从未感到舒适使用的高级功能。

“SaveQueuing”是专为您的场景设计的插件。它作为单独的JS文件( breeze.savequeuing.js )作为样本的一部分提供。它将客户端应用程序保存请求排队,确保每个请求仅在前一个请求完成后发出。无论如何都不是万无一失的;他们是可以绊倒你的边缘条件。但这是我们发现的最好的方法,可以像你一样经常自动保存。