2016-09-15 73 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

相關問題