nepster-web
@nepster-web

Динамическое изменение таблицы

У нас есть заявки игроков для старта игры. К примеру игра шашки, в нее могут играть 2 человека.
Пользователь создает предложение поиграть и ждет соперника, когда соперник присоединятся, то пользователь стартует игру.

Итак к примеру у нас есть таблица:
<table id="proposal">
            <thead>
                <tr>
                    <th>№</th>
                    <th>Игрок</th>
                    <th>Опции</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>1</td>
                    <td>Пользователь/или ожидание</td>
                    <td>Действия</td>
                </tr>
                
                <tr>
                    <td>2</td>
                    <td>Пользователь/или ожидание</td>
                    <td>Действия</td>
                </tr>
                
            </tbody>
        </table>


Уже сгенерированная с помощью чих пых пых.

Вот у нас 1 пользователь создал заявку и 1 колона таблицы будет с данными 1 пользователя, вторая колонка будет с ожиданием 2 игрока.

Далее к примеру происходит SSE запрос и возвращает нам данные, что присоединился 2 игрок

Далее у нас есть SSE запросы, которые проверяют присоединился ли второй игрок. К примеру игрок присоединился и сервер вернул JSON, где есть такой массивчик:

['users'] =  array(
                                    'user' => 'avatar',
                                    'sort' => 0,
                                    'root' => 1,
                                  ),
                        array(
                                    'user' => 'avatar',
                                    'sort' => 1,
                                    'root' => 0,
                                  )


Наша задача добавить в нужный данные пользователя которые вернул сервер.
Тоесть:

// вот у нас 1 пользователь, который создал заявку
<tr>
<td>1</td>
<td>Nepster</td>
<td>Вверх, Вниз, Кик</td>
</tr>

// вот тут у нас присоединился 2 пользователь
<tr>
<td>2</td>
<td>Сюда нужно добавить значение [user] из пришедшего с сервера массива </td>
<td>тут посложнее, стоку действия генерирует php</td>
</tr>

Для этого мне посоветовали:
underscorejs.org/#template

Но честно говоря вообще не представляю как можно это использовать?

И второй момент, когда пользователь создавший заявку меняет местами игроков (это актуально, когда идет игра на пары).

Приходит массив, где есть поле sort, которое отвечает за сортировку игроков
['users'] = array(
'user' => 'avatar',
'sort' => 0,
'root' => 1,
),
array(
'user' => 'avatar',
'sort' => 1,
'root' => 0,
);

Посоветовали использовать плагин для сортировки таблиц или underscorejs.org/#sortBy

Но тут тоже не могу понять как связать массив, который пришел с сервера с sortBy данной библиотеки.

Подскажите пожалуйста, кто в курсе как это можно реализовать?
  • Вопрос задан
  • 3652 просмотра
Пригласить эксперта
Ответы на вопрос 2
svd71
@svd71
использовать воттакую штуку.
Смысл ее в том, что подобный код,выполняясь у клиент в браузере, периодически отправляет специальные запросы серверу, получает от него нужные данные и налету меняет созержимое на странице.
Ответ написан
Вам возможно следует поменять парадигму приложения на событийно-ориентированную.
Тогда вам не потребуется обновлять по таймеру представления и создавать избыточную нагрузку на сервер.
Это значит, что возможно вам придется копать в сторону long polling, Ratchet или же вообще поступить радикально и перейти на node.js
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 11:14
65000 руб./за проект
19 апр. 2024, в 11:08
5000 руб./за проект
19 апр. 2024, в 10:59
150000 руб./за проект