Должен ли я скрыть элементы пользовательских пользователей?

StackOverflow https://stackoverflow.com/questions/3654655

Вопрос

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

Каковы плюсы и минусы каждого решения? Я думал, что, возможно, скрывая элемент, вы сохраняете государственную информацию, которая может быть важна, а также экономит время распределения, поэтому, возможно, это лучший способ для элементов, которые должны быть скрыты в течение короткого периода времени. Но что, если время становится больше? Затем у меня будет не нужный объект в памяти на все время.

Одним из примеров, чтобы дать четкую картину того, о чем я говорю, будет панель инструментов, которая изменяет кнопки на основе некоторого изменения контекста. То есть, как правило, есть несколько кнопок, прикрепленных к панели инструментов, но когда пользователь выбирает одно действие в какой-либо другой части интерфейса, эти кнопки должны быть заменены новыми (одна из которых является кнопкой «Готово»). Аналогично, когда пользователь выбирает кнопку «Готово» на панели инструментов, она возвращается в исходное состояние.

Я не знаю, является ли это глупости, и, возможно, может быть, я делаю что-то вроде преждевременной оптимизации ... Но я буду благодарен за все ваши ответы.

Это было полезно?

Решение

Я думаю, что общего большого пальца заключается в том, что элементы, которые вы планируете называть, должны быть скрыты; в противном случае уничтожены (некоторые исключения, очевидно, применяются). Когда / если это становится неисправным, вы можете рассмотреть дополнительные оптимизации.

Другие советы

Это очень хороший вопрос. Вот что происходит для меня:

  • Предположим (только для аргумента) у вас есть много разных форм, которые могут отображаться в одном и том же пространстве. Затем, если вы создаете / уничтожаете элементы управления, вы одновременно платите только за элементы управления, которые пользователь может видеть. С другой стороны, если вы скрываете / показать элементы управления, вы заплатите все время для большого количества элементов управления, на котором пользователь не смотрит (и может никогда не смотреть). Так что я всегда создаю / уничтожу. (На самом деле я продолжаю ранее использовал элементы управления в пулах, поэтому я не на самом деле не создаю их.)

  • Многие люди хранят пользовательское состояние в контролях пользовательского интерфейса, но лично я ненавижу это, и я никогда не делаю этого. Я думаю, что если какая-то информация стоит вспомнить, что она принадлежит структуре данных приложения. Это означает, конечно, что элементы управления нынешней видимой формой должны быть «связанными» или содержательными токами с структурой данных приложения. Я просто убедиться, что могу сделать это, несмотря ни на что.

Я должен был быть изобретенным для достижения их таким образом, что упрощает код приложения и в результате Метод, который я использую не известен, что то, что точно так же цена.

Нет общего ответа на этот вопрос. Это зависит от типа системы, ограничения CPU и RAM, количества рассматриваемых элементов пользовательского интерфейса, как часто пользовательский интерфейс будет показан / воссоздан и т., Возможно, если вы могли бы привести пример, мы сможем дать вам более краску Обратная связь.

Объекты JavaScript не похожи на объекты Windows (GDI): у них обычно нет воли для отправки / получения сообщений - почти пассивных. Требуется меньше кода, чтобы скрыть, верно? Возможно, это зависит от общего количества интерактивных объектов на сеанс пользователя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top