Использование скрытых полей хорошая идея? (ASP.NET, C#)
В приложении я извлекаю некоторые данные из базы данных, которые будут использоваться несколькими методами. Это хорошая идея, чтобы записать данные в скрытые поля при первом рисовании или я должен нарисовать данные снова, когда это необходимо?
7 ответов
Это зависит от того, что это за данные и как вы собираетесь их использовать.
Что это за данные?
Если это данные, которые должны быть защищены, такие как PHI или другие, никогда не храните их таким образом. Используйте состояние сеанса. В противном случае перейдите к следующему вопросу ниже.
Где вы будете его использовать?
Если это используется в коде позади, используйте viewstate или состояние сеанса. Если вы планируете использовать его с помощью jquery или javascript, и его не нужно защищать, скрытое поле подойдет.
Это зависит от того, что вы пытаетесь сохранить или сохранить.
Конфиденциальность
Если данные нуждаются в большей безопасности, не сохраняйте их в скрытых полях.
Размер
Если данные небольшие, то их прекрасное скрытое поле не является эффективным способом.
Я говорю, что это зависит от вашей потребности в безопасности. Помните, что скрытые поля являются клиентской стороной и поэтому могут редактироваться конечным пользователем.
Если эти поля будут отправлены обратно или использованы для чего-то более чувствительного, чем немного взаимодействия, то может быть безопаснее каждый раз извлекать их из базы данных.
Это зависит, я полагаю, от нескольких факторов, которые включают, но не ограничиваются:
- Как часто данные меняются?
- Как часто вам нужно будет обращаться к БД, если вы всегда получаете данные заново?
- Насколько конфиденциальны данные, которые извлекаются?
- Сколько данных извлекается?
- Так далее и тому подобное...
По большей части, решение зависит только от обстоятельств; и мы не обязательно имеем косвенную информацию.
Обычно хорошей идеей является наличие единственного источника правды, "мастера" для ваших данных. Теперь вы можете тиражировать эти данные по соображениям производительности, но пока вам это не нужно, вам не следует.
Если вы имеете в виду личное поле, то да, это хорошая идея, если данные одинаковы для всех методов, которые его используют.
Скрытое поле означает, что вы отправляете эти данные клиенту, а клиент загружает данные обратно вам при отправке. Это может быть проблема безопасности или производительности. Но все зависит от вашего сценария.
Вы можете хотеть использовать Сессию
Или кеширование