RegisterStartupScript 或 RegisterClientScriptBlock 哪个更快?

Posted

技术标签:

【中文标题】RegisterStartupScript 或 RegisterClientScriptBlock 哪个更快?【英文标题】:Which is faster RegisterStartupScript or RegisterClientScriptBlock? 【发布时间】:2012-10-03 02:29:40 【问题描述】:

我从here 看到了RegisterStartupScriptRegisterClientScriptBlock 之间的区别。 有描述从服务器端使用它们的注入 javascript 代码。 现在我还从 ASP.NET 服务器控件注入客户端脚本,但我的客户端脚本只是指向外部 JavaScript 文件。

string jsString="<script src="myscripts.js"></script>"
ClientScript.RegisterClientScriptBlock(this.GetType(), "JSScriptBlock",jsString);

我正在使用RegisterClientScriptBlock,但我想知道我应该使用RegisterStartupScript 更快。 在我的情况下,RegisterStartupScriptRegisterClientScriptBlock 哪个更快?谢谢。

【问题讨论】:

您是否遇到过速度问题?如果没有,你为什么要担心速度? 【参考方案1】:

The RegisterClientScriptBlock 方法立即插入客户端脚本below the opening tag of the Page object's element。代码无法访问表单的任何元素,因为当时这些元素还没有被实例化。

RegisterStartupScript 方法仅插入指定的客户端脚本before the closing tag of the Page object's element。代码可以访问表单的任何元素,因为那时元素已被实例化。

选择使用哪种方法实际上取决于您希望浏览器在呈现页面时运行脚本的“顺序”。

【讨论】:

以上是关于RegisterStartupScript 或 RegisterClientScriptBlock 哪个更快?的主要内容,如果未能解决你的问题,请参考以下文章

无法让嵌套在 UpdatePanel 中的 WebControl 中的 ScriptManager.RegisterStartupScript 工作

C# 从后台代码同步或异步注册Javascript到页面之RegisterStartupScript和RegisterClientScriptBlock的区别

RegisterStartupScript 和 RegisterClientScriptBlock 之间的区别?

Response.Write RegisterClientScriptBlock和RegisterStartupScript总结

ScriptManager.RegisterStartupScript 不断添加脚本块多次

在 ScriptManager.RegisterStartupScript 后面的代码中调用脚本后,jQuery document.ready 不会触发