2016-09-15 124 views
0

我有一个自动保存功能,它会触发每一分钟。 我开始从ajax调用自动保存到c#中的一个常用方法,这也通过手动保存功能使用。如何避免自动保存和手动保存功能之间的冲突

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

有没有什么办法在MVC 5或JavaScript,我可以避免这种冲突?

+0

我不能拿出别的东西,而不是在保存(手动或自动)启动之前检查客户端上的'isSaving'状态。然而,当保存被执行两次时它不好吗?我可以猜测这是一个新纪录的问题,但更新并不坏我猜如果他们同时发生两次? – Michel

回答

0

如果目前正在进行保存,则需要跟踪事实。布尔型保存状态应该可以做到。你也可以将一个枚举,如果你想有更多的节能状态,跟踪是怎么回事(SAVE_COMPILING_INFO,SAVE_PUTTING_ON_DISC,SAVE_IDLE等)

bool isCurrentlySaved=false; 

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

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

确保,当保存过程完成时(无论是成功还是失败了),该变量设置为false。否则,如果保存过程被切断,它将保持为真,并且您将不能在稍后再次保存电话。

+0

谢谢...我认为它会做的伎俩.. – Aradhana