2012-02-27 2 views
0

Я расширяю свой игровой движок шашек (встроенный Ruby) в Интернет, используя Sinatra.Обработка запроса, который зависит от двух кликов в Sinatra

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

<td id=<%= "A3" class= "open-square"><a href="/gameplay/A3></a></td> 

если пусто и

<td id=<%= "A3" class= "open-square"><a href="/gameplay/A3><img checker></a></td> 

, если занят (я раздел на Еврорадио причины его здесь неуместно)

I у вас есть маршрут, который выглядит так:

get '/gameplay/:location' do 
    erb :gameplay 
end 

Он отлично справляется с захватом отдельных кликов, но я два. Я получил большое предложение от Tom Anderson:

Шашки 64 квадратов, каждый квадрат в одном из трех состояний, поэтому - без использования куков - вы можете использовать JavaScript в браузере, чтобы создать свое состояние - 64 символов, как «br_bb ___...» для черный, красный и пустой, а затем отправьте эту 64-строчную строку вместе с квадратом с квадратом . Затем сервер отправляет новое состояние, которое локальные js использует для отображения квадратов.

Но я думаю, что это будет работать, только если я получу полный ход с одного щелчка, чего не могу. Я новичок в этом, очевидно наивный, любой совет, который у вас может быть оценен.

+1

Я думаю, что лучшим способом было бы «предварительно обработать» эти два клика с помощью javascript, а затем выполнить вызов AJAX на основе этого. Нет чистого способа связать два клика на стороне сервера, если они входят в разные запросы. – m33lky

ответ

0

Я не использовал JQuery для регистрации кликов. В основном я создал запрос для регистрации местоположений кликов и используемого программирования на стороне сервера, чтобы определить, когда нужно выполнить переход.

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