1

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

这是我的经理的配置:

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

1 回答 1

2

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

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

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

于 2013-04-16T17:38:22.800 回答