在ASPX页面中动态构建JavaScript的方法?

问题描述:

我有一个页面通过另一个网站页面上的<script>标记引用。在脚本src中,我传递了我希望脚本构建的表单(从db表)以及动态构建表单应该到达的div。调用页面看起来是这样的:在ASPX页面中动态构建JavaScript的方法?

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

GenerateForm.aspx包含读取的FormId,并在div标识的查询字符串参数的代码,并输出的JavaScript,将建立形式。

我的问题是这样的。 “输出”JavaScript有哪些不同的方法?有些JavaScript是静态的,可以打包成一个外部的.js文件,我也有jQuery。但是,我应该在GenerateForm.aspx标记页面上添加它吗?或者我应该使用ScriptManager?

那么动态构建的JavaScript呢?目前,我只是使用Response.Write()作为概念证明,但相反,我应该做其他事情吗?在页面上使用Literal控件并设置其值?使用ScriptManager?还有别的吗?

我知道这是一个详细的问题,所以在此先感谢!

如果你想使用一个单独的,引用的Javascript文件,你可能想要做的就是使用ashx文件。基本上这只是一个通用的处理程序,您将直接写入输出流而不必处理ASP.NET页面生命周期。如果您从添加新项目对话框向您的站点添加基本通用处理程序(.ashx),则模板应该有足够的方向,使用context.Response.Write()来动态输出您的Javascript。

如果您想要输出JavaScript的单独行以在特定时间运行,比如在事件发生后,ScriptManager更有用。然后,例如,您可以按ScriptManager.RegisterClientBlock(this, this.GetType(), "CodeBlock", "alert('Button clicked');", true);在单击按钮后显示客户端警报框。

应该以静态方式处理静态文件。服务器可以处理缓存,并且如果直接从脚本标记引用静态脚本文件,则不会导致不必要的处理。但是,如果您需要动态加载静态脚本,则可以创建一个文字,其中包含<脚本>脚本。这样它就使用浏览器的静态文件的缓存版本。