achekh,
Да я ж не против автосохранения. Мне надо лишь, чтоб бы возможность явного сохранения с подтверждением. И я лишь утверждаю, что синхронизацию работоспособной сделать невозможно. Я могу привести пример.
I: Допустим, двое приехали на КП с плохим интернетом. Вбили ответ A в телефон 1. Заметили, что инета ну совсем нет, взяли телефон 2 и тут поняли, что ответ A неверный. В телефон 2 вбили ответ B, и телефон 2 рисовал уверенный H+, хотя реально интернета не было вообще. Но на самом деле ответ А ушёл на сервер (это важно дальше). А у телефона 2 и правда нет интернета и появится он ещё через полчаса, скажем. Но поскольку ответ B более поздний - то он должен сохраниться, так ведь? Это же явно всеми ожидается и так и должно работать? По крайней мере все будут этого ожидать. Но.
II: Другие двое приехали на это же КП. Вбили ответ А в телефон 1. Он ушёл на сервер, но они заранее, видя, что интернет плохой, договорились, что вбивать будут оба. Так что в телефон 2 вбили ответ тоже, но с ошибкой или вообще не тот (B), причём по времени после ответа A, а интернета на телефоне 2 вообще нет. На следующем КП, не доверяя системе автосохранения и потому, что вбивали на два телефона, решили проверить, что же реально сохранилось. Ну и вообще, КП брали в спешке, мало ли (и таки да, участник с телефоном 2 ошибся и вписал неверный ответ B). У телефона 1 уже стабильный интернет, прошло куча времени. Обновили страничку, увидели ответ A, возрадовались, что молодцы, и забыли. И тут в сеть вышел телефон 2 и записал более поздний и неправильный ответ B. Но никто про это так и не узнал.
С точки зрения сервера варианты I и II выглядят абсолютно одинаково. И кто, скажите, из этих двух команд поступил неправильно, а главное почему и как, черт возьми, они должны были понять, что поступили неправильно?
Я абсолютно уверен, что невозможно сделать работающую автосинхронизацию как основной метод определения ответа, данного командой. Эта задача не имеет решения в принципе. Даже вон, с двумя телефонами. А что можно придумать с 4мя! Автосохранение - пожалуйста, отличная штука. Но фиксация конкретного ответа на сервере - это маст хев функционал для команды и его ни в коем случае нельзя полностью отдавать на откуп автоматической системе. Реализуется он, как я уже многократно писал, элементарно. Никаких проблем с конфликтами там не будет и быть при правильной реализации не может. Могу описать или накидать прототип, для работы которого будет достаточно любой производительной базы ключ-значение, даже не персистентной. Отключать автосохранение и вообще текущую систему не надо - можно просто добавить кнопочку к каждому полю. Можно не галочку, можно замочек - чтоб было явно видно, что на самом деле нажатие на кнопку не обязательное и это лишь для блокирования ответа, а не для сдачи. Но кнопка быть должна, иначе система гарантированно при абсолютно любой реализации будет неработоспособна. Либо вам придётся делать какие-то попапы при проблемах синхронизации, причём не просто, а с кнопками выбора правильного ответа. Но это вот как раз интерфейсная жесть и какой-то бред. И там всё равно придётся разруливать конфликты, всё те же и всё так же. Никуда никогда вы от этого не денетесь. Ну, либо получите заведомо не работающую систему.