我们有一个编辑表单,只允许一个用户一次编辑表单。表单非常大,并且其中包含相当多的Knockout.js代码,此代码拦截Submit按钮单击以进行验证,然后如果一切正常则提交表单。
服务器端或视图端没有任何变化,但在最近几天我们记录了大量的OptimisticConcurrency错误。
存储更新,插入或删除语句会影响意外的行数(0)。自实体加载后,实体可能已被修改或删除。有关理解和处理乐观并发异常的信息,请参阅http://go.microsoft.com/fwlink/?LinkId=472540。
唯一的另一个相关性是,有些用户抱怨网站运行缓慢。我希望有人可能猜到导致这种情况的原因是什么?它可能影响不到1%的表格,但这仍然会带来很多不便。它是负载平衡服务器上的MVC 5站点。
除了可能导致这种情况之外,还有其他一些想法,我应该怎么做才能解决问题,比如切换到客户端赢得并发异常?这些是医疗记录,因此任何数据丢失都可能是有害的。
更新
从评论中,这是按下提交按钮时运行的代码。
self.saveClick = function () {
validationTests();
if (self.validationError()) {
return false;
} else {
return true;
}
}
这样就不会禁止多次按下按钮了,不是吗?这可能是问题,因为现在网站运行缓慢。
答案 0 :(得分:1)
当您从同一个用户获得多个提交时,可能值得确保您的提交按钮在点击时被禁用。 以下是一个如何执行此操作的示例的问题
Disable submit button on form submit
值得注意的是,当您进行大量验证时,如果验证失败,则需要重新启用该按钮。