Получить информацию из базы данных с помощью AJAX, пока она не станет правильной - PullRequest
0 голосов
/ 28 августа 2009

Я делаю эту игру, в которой я пытаюсь «соединить людей». У меня есть база данных, в которую я добавляю людей, когда они хотят присоединиться к игре. И когда два человека хотят присоединиться к игре, я перенаправляю их в игру.

Но я хотел сделать это в ajax (который я новичок), чтобы он постоянно просматривал базу данных, если к ней присоединился новый человек. Я думал, что с помощью этого будет хороший метод:

new Ajax.PeriodicalUpdater('products', '/some_url',
  {
    method: 'get',
    insertion: Insertion.Top,
    frequency: 1,
    decay: 2
  });

Но потом он напомнил мне, что она будет открывать и закрывать базу данных очень много раз. Есть ли лучшее решение?

Ответы [ 2 ]

0 голосов
/ 28 августа 2009

Если люди могут зарегистрироваться для игр только тогда, когда приложение активно, зачем сохранять эту информацию в базе данных? Обслуживание информации с URL-адреса не требует загрузки ее из базы данных. Это может быть репозиторий другого типа (например, память).

Если у вас только один сервер приложений, то можно просто сохранить список людей в объекте общей памяти, для фермы приложений могут применяться другие правила - в зависимости от конфигурации и используемого хранилища сеансов.

0 голосов
/ 28 августа 2009

Правильно, использование базы данных позволит увеличить ее загрузку. В зависимости от того, какая у вас нагрузка, для возврата может потребоваться более 1 секунды, и в этом случае приложение само себя съест.

Другой вариант - сохранить что-то в памяти на стороне сервера. В PHP нет концепции «сервера приложений», поэтому БД - это хорошее место, или что-то вроде memcache.

Кроме того, вам нужно подумать о транзакционности. Что если в игре окажется 3 человека?

...