1

我有一个页面是通过<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 和Div Id 的QueryString 参数并输出将构建表单的JavaScript 的代码。

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

那么动态构建的 JavaScript 呢?目前我只是Response.Write()用于概念验证,但相反,我应该做其他事情吗?在页面上使用Literal控件并设置其值?使用脚本管理器?还有什么?

我知道这是一个冗长的问题,所以提前谢谢!

4

1 回答 1

1

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

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

静态文件应该以这种方式处理 - 静态。服务器可以处理缓存,如果直接从脚本标签引用静态脚本文件,不会造成不必要的处理。但是,如果您需要动态加载静态脚本,例如,您可以创建一个包含 <script> 标记的文字。这样,它使用浏览器的静态文件缓存版本。

于 2009-09-11T15:51:26.770 回答