Я расширяю свой игровой движок шашек (встроенный 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 использует для отображения квадратов.
Но я думаю, что это будет работать, только если я получу полный ход с одного щелчка, чего не могу. Я новичок в этом, очевидно наивный, любой совет, который у вас может быть оценен.
Я думаю, что лучшим способом было бы «предварительно обработать» эти два клика с помощью javascript, а затем выполнить вызов AJAX на основе этого. Нет чистого способа связать два клика на стороне сервера, если они входят в разные запросы. – m33lky