Я всегда видел много скрытых полей, используемых в веб-приложениях. Я работал с кодом, который написан для использования большого количества скрытых полей и значений данных от видимых полей, отправленных назад и вперед им. Хотя мне не удается понять, почему скрытые поля используются. Я могу почти всегда думать о способах разрешить ту же проблему без использования скрытых полей. Как скрытые поля помогают в дизайне?
Кто-либо может сказать мне, каково точно преимущество, которое обеспечивают скрытые поля? Почему скрытые поля используются?
Скрытые поля - это самый простой способ, поэтому они используются довольно часто.
Альтернативы:
Основные проблемы:
Основные преимущества:
Наиболее типичное использование, которое я вижу / использую, - это идентификаторы и другие вещи, которые действительно не должны быть на странице по какой-либо другой причине, кроме необходимости в какой-то момент для отправки обратно в сервер.
-edit, следовало бы включить больше деталей-
скажем, например, у вас есть какой-то объект, который вы хотите обновить - пользовательский интерфейс отправляет обратно набор значений, и сервер в этот момент может знать, а может и не знать "эй это объект клиента », поэтому вы отправляете запрос серверу и говорите« эй, дайте мне ID 7 », и теперь у вас есть объект клиента, известный системе. Обновления применяются, проверяются, что угодно, и теперь ваш пользовательский интерфейс получает завершенный результат.
Думаю, хорошим оправданием / аргументом является использование linq. Попробуйте обновить объект в linq, предварительно не получая его из БД. У него нет реального представления о том, что он может отслеживать, пока вы не получите объект полностью.
Обычно они используются для сохранения состояния по мере развития взаимодействия. Вместо этого можно использовать файлы cookie, но некоторые люди отключают их. Можно также использовать одно скрытое поле для указания состояния на стороне сервера, но тогда возникают проблемы с привязкой к сеансу.
вот одна из причин, удобный способ передачи данных между клиентским кодом (javascript) и серверной частью.
Он не допускает попадания в URL (как в строке запроса), чтобы сохранить его чистым. Он также не допускает в Session то, что не обязательно должно там находиться.
Кроме этого, я не могу назвать много других преимуществ.
Предположим, вы хотите отредактировать объект. Теперь полезно поместить идентификатор в скрытое поле. Конечно, вы не должны никогда полагаться на это значение (т.е. убедитесь, что у пользователя есть соответствующие права на insert
/ update
).
Тем не менее, это очень удобное решение. Отображение идентификатора в видимом поле (например, текстовом поле только для чтения) возможно, но раздражает пользователя.
Хранение идентификатора в сеансе / cookie является недопустимым, поскольку оно запрещает одновременное открытие нескольких окон редактирования и накладывает ограничения на время жизни (тайм-аут сеанса приводит к сбою операции редактирования, что очень раздражает).
Использование URL-адреса возможно, но это нарушает правила проектирования, т.е. использовать POST при изменении данных. Кроме того, поскольку он виден пользователю, он создает более уродливые URL-адреса.
Есть много полезных сценариев.
Один из них - «хранить» некоторые данные на странице, которые не должны вводиться пользователем. Например, сохраните идентификатор пользователя при создании страницы, тогда это значение будет автоматически отправлено вместе с формой обратно на сервер.
Еще один сценарий - безопасность. Добавьте на страницу скрытый токен и проверьте его наличие на сервере. Это поможет определить, была ли форма отправлена через браузер или каким-то ботом, который только что разместил ссылку на ваш сайт.