如何避免AutoSave和手动保存功能之间的冲突

时间:2016-09-15 09:20:36

标签: javascript c# jquery asp.net-mvc-4 asp.net-mvc-5

我有一个AutoSave功能,每分钟触发一次。 我正在从ajax调用启动此自动保存到c#中的常用方法,这也被手动保存功能使用。

我的问题是,当我保存记录[来自保存按钮]并且如果自动保存功能触发[并且反之亦然],它会将记录保存2次而不是仅保存1次。

在MVC 5或javascript中有什么办法可以避免这种冲突吗?

1 个答案:

答案 0 :(得分:0)

如果目前正在进行保存,您需要跟踪事实。布尔值保存状态应该可以解决问题。如果你想拥有更多的保存状态,你也可以创建一个枚举,以跟踪发生的事情(SAVE_COMPILING_INFO,SAVE_PUTTING_ON_DISC,SAVE_IDLE等)

bool isCurrentlySaved=false;

然后,无论是手动保存还是自动保存

if(!isCurrentlySaved)
{
   isCurrentlySaved=true;
   savestuff();
}

确保在保存过程完成时(无论是失败还是成功)将变量设置回false。否则,如果保存过程被切断,它将保持为真,您将无法在以后再进行另一次保存呼叫。