Я разрабатываю простую настольную игру в jquery/php. Состояние платы в настоящее время хранится на стороне сервера в переменной сеанса php в виде массива. Каждый ход выполняется как ajax-вызов php, который выполняет логику для обновления этого массива и возвращает массив в jquery для рендеринга как html. Я добиваюсь сохранения состояния правления с переменными сеанса php ... но я не думаю, что это хорошая практика. Я не могу даже воспроизвести его на нескольких вкладках, потому что браузер рассматривает обе вкладки как часть одного и того же сеанса. Я хотел бы найти решение, отличное от состояния хранилища в базе данных ... но если это единственное разумное решение, пожалуйста, дайте мне знать :). Благодаря!Каков наилучший способ добиться сохранения данных jquery/php?
ответ
Как насчет библиотеки javascript, например Lawnchair, для хранения данных на стороне клиента?
по умолчанию, lawnchair будет сохраняться с помощью хранения Dóm, но если другие адаптеры доступны и Dóm хранения не поддерживается в настоящее время выполнения выполнения JavaScript. lawnchair будет пытаться каждый последовательный адаптер , пока он не найдет тот, который работает. легко.
Это хранилище Dom хранится также через вкладки.
через Dive.Into.Javascript
Данные, сохраненные в локальном хранилище, не истекает и пролеты разнится для различных вкладок и/или окна
вы можете сохранить данные на стороне клиента с помощью javascript. Либо место в скрытых полях или механизмов использования как jquery data как это:
$('body').data('player1-pos-x', x);
$('body').data('player1-pos-y', y);
Проблема с ним, когда вы обновите браузер, все потеряно.
Другой способ - хранить данные как в стороне сбоку, так и на стороне клиента. вы можете хранить пару идентификатор игры, идентификатор сеанса, чтобы группировать игры в тот же сеанс. Когда браузер обновится, у вас будет вся игра, к которой относится сессия, и принять решение с данными.
Что делать, если пользователь открывает новую вкладку ... разве это не будет рассматриваться так же, как при обновлении браузера? поля на стороне клиента будут пустыми (как если бы они были обновлены) .. но данные сеанса будут заполнены? Открытие многих вкладок приведет к загрузке одной и той же игры на каждой вкладке, не так ли? – valen
Вы открываете вкладку и устанавливаете идентификатор игры равным нулю, затем принимаете решение о создании новой игры или загружаете существующую игру, связанную с тем же идентификатором сеанса. Вам необходимо использовать ajax для запроса серверной части для списка идентификатора игры или создания нового идентификатора игры, а затем загрузить соответствующие данные. Таким образом, вы можете открыть несколько разных открыток. помните, что это делает систему относительно сложной, так как если загрузка одной и той же игры может привести к конфликту, который вам нужно обработать, и каждый движок игрока должен быть сохранен как на стороне клиента, так и на стороне сервера –
- 1. Каков наилучший способ сохранения данных в Android?
- 2. Каков наилучший способ массового сохранения файлов cookie?
- 3. Каков наилучший способ сохранения настроек PHP-приложений?
- 4. Каков наилучший способ сохранения данных в приложении Java Desktop?
- 5. Каков наилучший способ предложить класс как услугу для сохранения данных?
- 6. Каков наилучший способ добиться эффекта анимации/отскока в ViewPager?
- 7. Каков наилучший способ вставки данных в mongodb
- 8. Каков наилучший способ сохранения объекта с помощью форм в PHP?
- 9. Каков наилучший способ многопоточности?
- 10. ASP.NET Core. Каков наилучший способ сохранения модели во всем приложении?
- 11. Каков наилучший способ сохранения глобального массива в php?
- 12. Каков наилучший способ увеличения?
- 13. Каков наилучший способ запроса?
- 14. Каков правильный способ сохранения данных в формах
- 15. Каков наилучший способ реализации «мягкого» процесса сохранения или изменения?
- 16. Каков наилучший способ сохранения ответа webservice в БД?
- 17. Каков наилучший способ сохранения нескольких строк в DB одновременно?
- 18. Каков наилучший способ представить свойство без сохранения, которое можно переопределить?
- 19. rails3 ajax: Каков наилучший способ сохранения локальных переменных через ajax?
- 20. Каков наилучший способ развертывания сервлета изображения для сохранения конфиденциальности изображений?
- 21. Каков наилучший способ сохранения/отображения изображений? (не blob vs. txt)
- 22. Каков наилучший способ передачи данных в Runnable?
- 23. Каков наилучший способ отправки данных на сервер?
- 24. Каков наилучший способ хранения временных данных?
- 25. Каков наилучший способ представления этих многомерных данных?
- 26. Каков наилучший способ структурирования данных по firebase?
- 27. Каков наилучший способ архивирования базы данных postgres?
- 28. Каков наилучший способ хранения данных конфигурации сайта?
- 29. Каков наилучший способ перебора всех данных?
- 30. Каков наилучший способ избежать передачи кадра данных?
Это, вероятно, потому, что вы используете одни и те же имена переменных для обеих вкладок; попробуйте использовать $ _SESSION ['game_tab1'] и $ _SESSION ['game_tab2'], .. в основном добавить id, ссылающийся на вкладку –
. Если вы используете сеансы, я бы хотел иметь отдельный сеанс для каждого экземпляра игры, а не хранить все экземпляры игры в том же сеансе – valen