169 похожих чатов

Всем привет. Подскажите плз, куда капнуть. Имею: 1. Вебсокет подключение, через которое

при каждом изменении на бэке фронт получает новый json, в которое хранятся записанные табличные данные.
2. На основании этих данных vue каждый раз перерисовывает таблицу с нуля.
Я хочу:
Чтобы эта таблицу можно было редактировать онлайн. Соответственно у меня реализован механизм, что если кликнуть на div блок ячейки, он становится input, где я могу ввести данные и отправить их на сервер пост запросом.
И как бы этот механизм работает, но
Проблема:
В момент, когда я ввожу в input данные, может прилететь по вебсокету новый пакет данных и он перерисует таблицу, что приведет к:
Потере введенных в input данных.
Потери самого инпута (вместо него снова будет див блок)
Решение:
Пока вижу два:
1. На момент активации инпута - отключать вебсокет соединение. Но не хотелось бы. Т.е. я бы хотел чтобы все табличные данные все так же постоянно обновлялись, кроме тех ячеек, что сейчас редактируются.
2. Как-то добавить обработку в отрисовку, чтобы обходить див блоки, которые имеют css class disabled со свойством display: none;

Но если честно, мне не один из вариантов не нравится. Можете подсказать, плз, что еще можно сделать?

3 ответов

7 просмотров

клон делай

Завьялов-Владислав Автор вопроса
Roman
клон делай

Клон данных в смысле?

Отрисовка повторяющихся элементов во Vue работает так, что изменяются только те элементы, у которых изменились пропсы, поэтому может быть не нужно обнулять массив со значениями. Моё решение: 1) Перед тем как редактировать ячейку вы запоминаете её значение и кладёте в переменную 2) Если во время редактирования данных приходят новые данные вы можете обновить все строки, кроме редактируемой (или даже все ячейки кроме редактируемой) 3) При сохранении вы можете сделать prompt, что данные изменились на —> 'qwerty', вы действительно хотите перезаписать значение. И если нажимается на "да", то просто перезаписываются.

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта