2009-11-18 2 views
0

Я разрабатываю веб-приложение с картой zend. Это приложение для продажи билетов на кино. Приложение позволяет пользователям выбирать место, а затем покупать билет. (Проблема аналогична классическому бронированию авиабилетов). У меня две проблемы.Совместимость двоичной рамки и ajax

Задача 1: Страница, показывающая, что все сиденья должны обновляться с помощью ajax (сиденье зеленое, если доступно, и красное, если оно недоступно): каждое место - это div на странице. Например, если USER A просматривает страницу с местами, а другой USER B покупает билет, соответствующее место должно стать красным для USER A без обновления страницы. Как я могу обновить каждый div? я хотел бы использовать jquery, я пытался сделать запрос json для каждого div каждую секунду, но он слишком медленный. Есть идеи?

Проблема 2: Как я могу управлять параллелизмом? Если USER A и USER B нажмите одновременно, чтобы купить тот же билет (билет на одно и то же место), что мне делать? Я использую движок InnoDB, но мне нужно управлять транзакцией в относительном контроллере?

Большое спасибо!

ответ

0

Я думаю, что вы можете использовать Comet для проблемы 1, чтобы вывести данные с вашего веб-сервера в браузер.

К сожалению, я не знаю, как использовать это практически.

0

Я бы, вероятно, решил проблемы 1 и 2 по-разному (как я видел на многих сайтах для продажи билетов). Когда пользователь выбирает место, я бы обновил место с отметкой времени в базе данных. Это означало бы, что место занято. Затем пользователь получает 1 минуту (или некоторое количество времени) для покупки билетов. Если они этого не сделают, то временная метка изменится на нуль.

sql будет довольно простым. В основном система сканирует эту таблицу для человека B и скажет, что возвратит все доступные места (строки в базе данных), где отметка времени равна нулю или (теперь - отметка времени> 1 минута).

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