我有一个AutoSave功能,每分钟触发一次。 我正在从ajax调用启动此自动保存到c#中的常用方法,这也被手动保存功能使用。
我的问题是,当我保存记录[来自保存按钮]并且如果自动保存功能触发[并且反之亦然],它会将记录保存2次而不是仅保存1次。
在MVC 5或javascript中有什么办法可以避免这种冲突吗?
答案 0 :(得分:0)
如果目前正在进行保存,您需要跟踪事实。布尔值保存状态应该可以解决问题。如果你想拥有更多的保存状态,你也可以创建一个枚举,以跟踪发生的事情(SAVE_COMPILING_INFO,SAVE_PUTTING_ON_DISC,SAVE_IDLE等)
bool isCurrentlySaved=false;
然后,无论是手动保存还是自动保存
if(!isCurrentlySaved)
{
isCurrentlySaved=true;
savestuff();
}
确保在保存过程完成时(无论是失败还是成功)将变量设置回false。否则,如果保存过程被切断,它将保持为真,您将无法在以后再进行另一次保存呼叫。