Методы для динамического построения JavaScript на странице ASPX?

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

Вопрос

У меня есть страница, на которую ссылается тег <script> со страницы на другом сайте. В скрипте src я передаю форму, которую я хочу, чтобы мой скрипт собирал (из таблицы db), и div, куда должна идти динамически построенная форма. Страница вызова выглядит примерно так:

<div id="FormContainer"></div>
<script type="text/JavaScript" src="http://www.example.com/GenerateForm.aspx?FormId=1&div=FormContainer"></script>

GenerateForm.aspx содержит код, который считывает параметры QueryString для FormId и Div Id, и выводит JavaScript, который будет создавать форму.

Мой вопрос такой. Какие существуют методы для & Quot; вывода & Quot; JavaScript? Часть JavaScript является статической и может быть упакована во внешний файл .js, и у меня тоже есть jQuery. Но следует ли добавить это на странице разметки GenerateForm.aspx? Или я должен использовать ScriptManager?

А как насчет динамически создаваемого JavaScript? В настоящее время я просто использую Response.Write() для подтверждения концепции, но должен ли я заниматься чем-то другим? Использовать элемент управления Literal на странице и установить его значение? Использовать ScriptManager? Что-то еще?

Я знаю, что это подробный вопрос, поэтому заранее спасибо!

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

Решение

Если вы хотите использовать отдельный Javascript-файл, на который ссылаются, вы, вероятно, захотите это использовать файл Ashx. По сути, это всего лишь универсальный обработчик, который вы будете использовать для прямой записи в выходной поток без необходимости иметь дело с жизненным циклом страницы ASP.NET. Если вы добавляете базовый универсальный обработчик (.ashx) на свой сайт из диалогового окна «Добавить новый элемент», шаблон должен иметь достаточное направление, используя context.Response.Write() для динамического вывода Javascript.

ScriptManager более полезен, если вы хотите выводить отдельные строки Javascript, которые будут запускаться в определенное время, например, после запуска события. Затем вы можете ScriptManager.RegisterClientBlock(this, this.GetType(), "CodeBlock", "alert('Button clicked');", true); показать окно предупреждения клиента, например, после нажатия кнопки.

Статические файлы должны обрабатываться именно так - статически. Сервер может обрабатывать кэширование и не вызывает ненужной обработки, если вы ссылаетесь на статический файл сценария непосредственно из тега сценария. Однако, если вам нужно загрузить статический скрипт динамически, вы можете, например, создать литерал с & Lt; script & Gt; тег внутри него. Таким образом, он использует кешированную версию статического файла в браузере.

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