【问题标题】:How to avoid conflict between AutoSave and Manual Save functionality如何避免自动保存和手动保存功能之间的冲突
【发布时间】:2017-01-23 06:12:29
【问题描述】:

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

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

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

【问题讨论】:

  • 除了在客户端上设置“isSaving”状态外,我想不出别的办法,在保存(手动或自动)开始之前会检查该状态。但是,执行两次保存会很糟糕吗?我猜这是新记录的问题,但更新也不错我猜如果它们同时发生两次?

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


【解决方案1】:

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

bool isCurrentlySaved=false;

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

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

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

【讨论】:

    猜你喜欢
    • 2010-10-30
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    相关资源
    最近更新 更多