Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.10.2020, 00:46
Кандидат Javascript-наук
Отправить личное сообщение для Was-Ja Посмотреть профиль Найти все сообщения от Was-Ja
 
Регистрация: 20.09.2020
Сообщений: 132

Что правильнее - object или ручная запаковка или еще что-то?
Добрый день,

о себе - нуб в ЖС, но имею большой опыт в С/С++ особенно в суперкомпьютинге.

Что мне сейчас надо. Пишу веб морду, которая общается с высокопроизводительным софтвером на линукс кластере. В морде есть много - около сотни параметров и таблиц, часто представляющие собой таблицы переменной длины.

Мне надо эту конфигурацию передать в софтвер, иногда надо из софтвера прочитать все эти параметры.

Вижу два варианта:

1. засовываю все эти структуры в object, далее все очевидно, при передаче вызываю JSON.stringify, а когда получаю с софтвера данные - вызываю JSON.parse.

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

Данных для запаковки примерно от 10КБайт до 1МБайт.

Надобно не часто, но хочется, чтобы это "летало" на любом ведроиде в том числе и прошлого столетия.

Как правильнее, пожалуйста, посоветуйте!

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 02.10.2020, 05:38
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

JSON. Движки заточены под это, нагрузка минимальна. Собственный паковщик может и выиграет в объёме передаваемых данных, но проиграет в нагрузке и, само собой, поддержке.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 02.10.2020, 09:03
Кандидат Javascript-наук
Отправить личное сообщение для Was-Ja Посмотреть профиль Найти все сообщения от Was-Ja
 
Регистрация: 20.09.2020
Сообщений: 132

Спасибо большое за ответ!

Я наверное неправильно вопрос сформулировал, простите меня, пожалуйста. То, что передавать буду JSONом - это однозначно. А вот как мне эти переменные и массивы внутри самой морды хранить и адрессировать?

Вот пример:
у меня есть около 20 полей

<input type="text" id="data_name" size=6">

с разными именами data_name, а также с десяток массивов, длины которых определяются заполнением таких input и того, что в них содержится (я эти формы в ЖС на лету генерю).

То есть программа, которая это все обрабатывает - тоже моя, я могу вход JSON парсить как мне захочется.

Правильно ли я понимаю, что мне надо все мои данные из input сразу воткнуть в какой-то object, и протаскивать данные просто запаковывая весь этот object в JSON строку, или есть какой-то более элегантный способ?

Спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 02.10.2020, 09:54
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,757

А что тут не элегантного?

let array1 = [...];
....
let arrayM =[....];

let obj = {};
obj.data_name1 = document.getElementById('data_name1').value;
...
obj.data_nameN = document.getElementById('data_nameN').value;

obj.array1 = array1;
...
obj.arrayM = arrayM;

let sjson = JSON.stringify(obj)
Ответить с цитированием
  #5 (permalink)  
Старый 02.10.2020, 11:49
Аспирант
Отправить личное сообщение для NeoN Посмотреть профиль Найти все сообщения от NeoN
 
Регистрация: 01.03.2013
Сообщений: 77

Сообщение от Was-Ja Посмотреть сообщение
Правильно ли я понимаю, что мне надо все мои данные из input сразу воткнуть в какой-то object, и протаскивать данные просто запаковывая весь этот object в JSON строку, или есть какой-то более элегантный способ?
Да, по-моему самое просто и элегантное решение
Ответить с цитированием
  #6 (permalink)  
Старый 02.10.2020, 12:16
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Простое решение - использовать какие либо библиотеки с data binding, которые напрямую тебе свяжут json структуру с input'ами, освобождая от ручной работы. Например Vue.
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 03.10.2020, 12:11
Кандидат Javascript-наук
Отправить личное сообщение для Was-Ja Посмотреть профиль Найти все сообщения от Was-Ja
 
Регистрация: 20.09.2020
Сообщений: 132

Спасибо большое за советы!!!

Да, я понимаю, что то, что предлагает voraa - достаточно просто и надежно.

Я просто имел ввиду, что можно как-то в
<input type="text" id="obj.data_name" size=6">

сразу в obj.data_name написать имя и поле объекта, но, повидимому, это реализуемо только, как Aetae посоветовал, через Vue...

Все, разобрался что да как, огромное-преогромное всем участвовавшим и советовавшим СПАСИБО!!!
Ответить с цитированием
  #8 (permalink)  
Старый 03.10.2020, 15:45
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,757

И тащить Vue вместо пяти строк?

document.querySelectorAll('input[type=text]').forEach(el => {
  el.addEventListener('input', (ev) => {
     obj[ev.target.id] = ev.target.value
  })
})
Ответить с цитированием
  #9 (permalink)  
Старый 03.10.2020, 16:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,136

voraa,

document.querySelectorAll('input[type=text]').forEach(el => {
  el.addEventListener('input', _ => obj[el.id] = el.value)
})
Ответить с цитированием
  #10 (permalink)  
Старый 03.10.2020, 18:28
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

voraa, рони, ну так тут обратной связи от изменения объекта не будет. И эти "пять" строк придётся повторять из раза в раз меняя в зависимости от структуры. А попытки универсализации выльются в итоге в написание своей мини-либы, что всяко будет хуже уже имеющихся.)
Тащить же Vue необязательно, полно data-binding либ по проще, в том числе и от местных ребят.

Но честно говоря брать сейчас vue для меня как брать раньше jquery: подключил и фигач, не парь мозги и не трать время на велосипеды.
__________________
29375, 35

Последний раз редактировалось Aetae, 03.10.2020 в 18:32.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Психологическая деформация программистов DreamTheater Оффтопик 59 24.03.2012 05:03
jslibs или что еще для SQLite vinil_spb Библиотеки/Тулкиты/Фреймворки 6 16.02.2012 12:21
http://gigalit.info - Мои контакты Маэстро Ваши сайты и скрипты 70 08.12.2011 03:12
О фрилансе (Личный опыт) free Оффтопик 105 18.08.2011 17:02
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37