Мы разрабатываем социальную игру на основе браузера, и это игра MMORPG. Мы используем html/javascript/css в качестве технологии frontend (по сравнению со вспышкой). когда пользователь загружает нашу игру в первый раз, будет загружена группа файлов (внешние js/css), и будет запрошен несколько вызовов ajax. Вся страница не будет загружена повторно, если пользователь не обновит страницу вручную. И мы создаем объект js для хранения пользовательских данных, таких как деньги, уровень и многое другое. И это может измениться во время предстоящих операций пользователя. поэтому нам нужно синхронизировать данные с бэкэнд. Специальная проблема - Данные пользователя также могут быть обновлены пассивно (другими пользователями), это может произойти в бою другими пользователями. поэтому мой вопрос - как и когда синхронизировать?Синхронизация данных между интерфейсом и бэкендом
До сих пор мы прошли две стадии: 1) всякий раз, когда пользователь щелкает вкладками (чтобы показать/скрыть div в html) или возможные операции (например, сразиться/купить что-то), тогда мы вызываем запрос ajax для получения свежих данных из базы данных каждый раз. 2) аналогично 1), но мы просто добавляем прокси-сервер, чтобы указать, изменились ли данные пользователя или нет, чтобы уменьшить бесполезный запрос базы данных. Поначалу вызов ajax пойдет на прокси.
для 1) мы можем иметь 70% + бесполезные звонки Ajax и дб запросы
для 2) мы можем иметь 70% + бесполезен Аякс называет
Теперь мы используем 2) 's подход. Но я не думаю, что это лучшее решение, так как у нас все еще есть 70% + бесполезные призывы ajax. так что есть ли лучшее решение для этого варианта использования?
объяснения
бесполезно Аякса вызов: так как интервал между 2 АЯКС вызовов, пользовательские данные не могут быть изменены на всех.