Pergunta

Eu tenho uma página que é referenciada através de um tag <script> de uma página em outro site. Na src roteiro, eu passo na forma que eu quero o meu script para construir (de uma tabela db), eo div onde a forma construída dinamicamente deve ir. A página chamando é algo como isto:

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

GenerateForm.aspx contém o código que lê os parâmetros QueryString para o FormId, eo Div Id, e produz JavaScript que irá construir o formulário.

A minha pergunta é esta. Quais são os diferentes métodos para "saída" do JavaScript? Alguns dos JavaScript é estática, e pode ser empacotado em um arquivo .js externo e tenho jQuery também. Mas devo acrescentar que na página do GenerateForm.aspx marcação? Ou devo usar um ScriptManager?

E o JavaScript dinamicamente construída? Atualmente estou usando apenas Response.Write() para uma prova de conceito, mas em vez disso, eu deveria estar fazendo outra coisa? Use um controle Literal na página e defina seu valor? Use um ScriptManager? Outra coisa?

Eu sei que esta é uma pergunta detalhada, por isso obrigado antecipadamente!

Foi útil?

Solução

Se você deseja usar um arquivo Javascript referenciado independente, você provavelmente quer fazer é usar um arquivo ashx. Basicamente, este é apenas um manipulador genérico que você vai usar para escrever diretamente para o fluxo de saída sem ter que lidar com o ciclo de vida de página ASP.NET. Se você adicionar um manipulador genérico básico (.ashx) para seu site na caixa de diálogo Add New Item, o modelo deve ser sentido o suficiente, usando context.Response.Write() a saída de seu Javascript dinamicamente.

O ScriptManager é mais útil se você quiser saída linhas individuais de Javascript para ser executado em determinados momentos, como depois de um evento foi acionado. Então você pode fazer ScriptManager.RegisterClientBlock(this, this.GetType(), "CodeBlock", "alert('Button clicked');", true); para mostrar uma caixa de alerta cliente após um botão foi clicado, por exemplo.

Arquivos estáticos devem ser manuseados apenas dessa forma - estaticamente. O servidor pode lidar com o armazenamento em cache, e não causa processamento desnecessário se você faz referência o arquivo de script estática diretamente do tag script. No entanto, se você precisa load um script estático dinamicamente, você poderia, por exemplo, criar um literal que tinha a tag

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top