Использовать GUID для ClientID

Кто-нибудь когда-нибудь экспериментировал с использованием GUID для ClientID. Причина, по которой я спрашиваю, заключается в том, что у меня приложение с очень богатым пользовательским интерфейсом, а HTML-код, который отправляется туда и обратно, становится все больше и больше. Большая часть этого HTML - это идентификаторы элементов управления, которые создаются на основе объединения родителей. Например: Container_Tab_FirstTab_Control.

Одним из возможных решений этого может быть создание идентификаторов GUID как ClientID. Таким образом, ClientID будет иметь длину не более 32 символов.

Кто-нибудь раньше пробовал что-то подобное?

Я использую .NET 4.0


person BlueChameleon    schedule 02.04.2014    source источник


Ответы (3)


Вы можете использовать ClientIDMode перечисление и указать static. Но тогда вам придется управлять уникальностью ClientID каждого элемента управления.

Использование GUID не будет такой хорошей идеей, потому что будет сложно получить к ним доступ в коде на стороне клиента. Вам потребуется поддерживать соответствие между GUID и элементом управления, которому он соответствует.

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

person Habib    schedule 02.04.2014
comment
Зачем мне нужно управлять уникальностью, если я собираюсь сгенерировать GUID для каждого элемента управления? Что касается кода на стороне клиента, большая часть, если не весь мой javascript отображается с идентификатором клиента, замененным со стороны сервера, поскольку я могу просто использовать один идентификатор, потому что все мои элементы управления находятся внутри других родительских элементов управления. - person BlueChameleon; 02.04.2014
comment
вам потребуется управлять уникальностью, если вы используете статический ClientIDMode, а не GUID. - person Habib; 02.04.2014

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

Просмотрите свои данные (загрузите их через AJAX). Вы также можете загружать целые разделы своей страницы через Ajax и создавать динамическую веб-страницу.

person mason    schedule 02.04.2014

Это вообще плохая идея.

Но если вам интересно, вы можете установить для свойства ClientIDMode значение Static, что не изменит идентификатор.

Идентификатор останется прежним.

person Amit Joki    schedule 02.04.2014