javascript - 轻而易举地立即自动保存

标签 javascript knockout.js breeze

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

这是我的经理的配置:

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

最佳答案

删除 saveOptions 就可以了。 “SaveQueuing”和allowConcurrentSaves 是相互竞争的方法。

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

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

关于javascript - 轻而易举地立即自动保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16042574/

相关文章:

javascript - 在绑定(bind)到另一个对象的函数内访问 jQuery 对象

javascript - 带有喜欢和评论选项的评论框代码

javascript - 即使在数据更改期间也会触发 knockout 点击事件

jquery - Knockout.js 获取与数据关联的 dom 对象

xamarin - DevForce 支持 Xamarin?

javascript - 如何使用 breezejs 保护添加或删除实体

Javascript |奇数数组行为 - 解析组合数组与预定义数组

javascript - htmlCollection child 不在 IE 中工作

javascript - 第二次单击后触发 knockout 单击绑定(bind)

breeze - 对 Breeze 有任何 Grid 建议吗?