我有一个页面是通过另一个网站上的页面的<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包含读取FormId的QueryString参数和Div Id的代码,并输出将构建表单的JavaScript。
我的问题是这个。 “输出”JavaScript有哪些不同的方法?一些JavaScript是静态的,可以打包到外部.js文件中,我也有jQuery。但是我应该在GenerateForm.aspx标记页面上添加它吗?或者我应该使用ScriptManager吗?
那么动态构建的JavaScript呢?目前我只是使用Response.Write()
来进行概念验证,但相反,我应该做些什么吗?在页面上使用Literal
控件并设置其值?使用ScriptManager?还有别的吗?
我知道这是一个冗长的问题,所以提前谢谢!
答案 0 :(得分:1)
如果你想使用一个单独的,引用的Javascript文件,你可能想要做的是使用ashx文件。基本上,这只是一个通用的处理程序,您可以使用它直接写入输出流,而无需处理ASP.NET页面生命周期。如果您从“添加新项”对话框向站点添加基本通用处理程序(.ashx),则模板应该是足够的方向,使用context.Response.Write()
动态输出您的Javascript。
如果要在特定时间输出要运行的各个Javascript行,则ScriptManager会更有用,例如在事件触发后。然后,您可以执行ScriptManager.RegisterClientBlock(this, this.GetType(), "CodeBlock", "alert('Button clicked');", true);
以在单击按钮后显示客户端警报框。
应该以这种方式处理静态文件 - 静态。服务器可以处理缓存,如果直接从脚本标记引用静态脚本文件,则不会导致不必要的处理。但是,如果您需要动态加载静态脚本,您可以创建一个包含&lt; script&gt;的文字。里面的标签。这样它就可以使用浏览器的静态文件缓存版本。