Используйте страницу или httphandler для вывода переменных JavaScript - PullRequest
1 голос
/ 29 июня 2011

У меня есть некоторые переменные javascript, которые я хочу включить в страницу asp.net.Они встроены в код.Я использую эти переменные в своем коде на стороне клиента.

Мне интересно, это лучший подход.

A.Создайте обработчик http, который обрабатывает логику для переменных, а обработчик возвращает javascript.Ссылка на обработчик включена в главную страницу

B.Код главной страницы обрабатывает логику для переменных и возвращает разметку страниц.

Эти переменные требуются на каждой странице.

Мне интересно, какой из подходов является наилучшим с точки зрения производительности и передового опыта.

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

Мнения?

Ответы [ 5 ]

0 голосов
/ 30 июня 2011

У вас может быть блок кода JavaScript, который хранит эти переменные в скрытых полях market runat = server.Затем вы можете забрать их со стороны сервера при обратной передаче.

0 голосов
/ 30 июня 2011

Вы можете сделать HttpModule , который записывает javascript непосредственно в выходной ответ.Таким образом, у вас нет запроса к обработчику или какой-либо разметке на главной странице.

0 голосов
/ 29 июня 2011

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

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

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

0 голосов
/ 30 июня 2011

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

0 голосов
/ 29 июня 2011

Интересный вопрос.Как правило, я выводю переменные в пользовательское пространство имен (глобальный объект), которое в основном является вашим вариантом B, но я не могу сказать, что у меня есть конкретные причины для этого, кроме того, что я никогда не думал о создании собственного httpHandler!

...