gpt4 book ai didi

asp.net - RegisterStartupScript 和执行顺序

转载 作者:数据小太阳 更新时间:2023-10-29 06:03:59 27 4
gpt4 key购买 nike

我正在使用 ScriptManager.RegisterStartupScript注册对大量 JS 函数的调用。

ScriptManager.RegisterStartupScript(this, this.GetType(), "Script1", "SomeScript1", true);
ScriptManager.RegisterStartupScript(this, this.GetType(), "Script2", "SomeScript1", true);
ScriptManager.RegisterStartupScript(this, this.GetType(), "EndScript", "EndScript", true);

呈现 HTML 时,它会按顺序添加它们。

<script type="text/javascript">
//<![CDATA[
other functions calls..
SomeScript1();SomeScript2();EndScript();
//]]>
</script>

但是,当我在 Debug模式下逐步执行时,脚本的执行顺序不正确(例如:EndScriptSomeScript1SomeScript2 之前先执行)

不是 ScriptManager.RegisterStartupScript保证按添加顺序执行?如果不是,有什么替代方案(我想最后总是执行 EndScript)

最佳答案

来自 RegisterStartupScript 的 MSDN 页面:

Startup script blocks that are registered by using RegisterStartupScript are not guaranteed to be output in the same order in which they are registered. If the order of the startup script blocks is important, use a StringBuilder object to gather the script blocks in a single string, and then register them all as a single startup script.

将它们呈现到页面后,脚本的实际执行由浏览器处理,与 ScriptManager 控件没有任何关系。查看您发布的示例,浏览器应按照编写的顺序执行这些示例。您的 EndScript 函数是否也可以被页面上的其他内容调用?此外,如果您使用任何类型的回调,则回调完成的时间是不确定的。您能否提供每个脚本中的代码示例?

关于asp.net - RegisterStartupScript 和执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1435503/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com