Считается ли плохой практикой хранить и извлекать информацию только из DOM?

#javascript

#javascript

Вопрос:

Допустим, у меня есть веб-сайт словаря, и в одном div я показываю слово, его определение и пример. Мне нужно ссылаться на эти строки где-то в другом месте. Обычно ли приемлемо просто извлекать их из div (найти элемент по идентификатору, получить значение), или лучше создать объект, представляющий все в этом div, и избегать DOM, когда мне нужно запросить его значения?

Дополнительное объяснение: кто-то может щелкнуть элемент на странице (элемент просто отображает слово), а в другом div он отображает определение и пример этого слова (элемент связан с объектом, который содержит всю эту информацию). В этом другом div есть текстовые области, которые отображают определение и пример. Я хочу, чтобы кто-нибудь мог редактировать текст там, а затем обновлять значения в word object. Должен ли я просто получать текст из этих текстовых областей и отправлять его в объект word, или у меня должен быть объект «редактировать div», содержащий строки в текстовых областях, и просто отправлять значения между двумя объектами?

Комментарии:

1. На самом деле это хорошая идея сделать это. У нас даже есть атрибуты специально для этой цели.

2. Я бы сказал, что это зависит от источника данных и где вы его используете. В целом (мое мнение): если вам нужно получить доступ ко многим объектам и большому количеству данных, я бы предпочел сохранить данные в ja Javascript datastructure, добавить идентификатор к элементу и выполнить поиск дополнительных данных по этому идентификатору. Не могли бы вы объяснить, откуда берутся данные и как вы их используете? » refer to those strings » несколько расплывчато.

3. Добавлено дополнительное объяснение.

4. Разве это не вся цель DOM?

Ответ №1:

Описанный вами подход быстро стал бы сложным в обслуживании и тестировании. Я полагаю, если бы у вас был сайт-словарь, у вас был бы серверный сервер, содержащий все слова. Вам нужно было бы использовать JavaScript для получения этих данных — так что вы, вероятно, привязали бы свой пользовательский интерфейс к данным, полученным из этого бэкэнда, и объекты JS были бы местом, откуда просматривается все остальное.

Этот подход отключает ваш пользовательский интерфейс от базовых данных и не создает искаженного беспорядка пользовательского интерфейса, ссылающегося на другой пользовательский интерфейс.

Я бы рекомендовал прочитать о том, как использовать одностраничный фреймворк приложения, такой как AngularJS, DurandalJS или EmberJS, чтобы «правильно» структурировать вещи.