2016-09-15 1 views
0

У меня есть функция AutoSave, которая запускается каждую минуту. Я инициирую это автоматическое сохранение от вызова ajax к общему методу в C#, который также привыкает к функциональности Manual Save.Как избежать конфликта между функциями автосохранения и ручного сохранения

Моя проблема в том, что когда я сохраняю запись [От кнопки «Сохранить»], и если триггеры автоматического сохранения [и в тисках наоборот], он сохраняет записи 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(); 
} 

Убедитесь, что, когда процесс сохранения завершен (не удалось ли или удалось), что переменная устанавливается обратно в ложь. В противном случае, если процесс сохранения был отключен, он останется верным, и вы не сможете выполнить другой вызов сохранения позднее.

+0

спасибо ... я думаю, это будет трюк .. – Aradhana

Смежные вопросы