症状
<script type=text/javascript>loadTOCNode(1, 'symptoms');</script>
当您使用
RegisterClientScriptBlock() 方法可添加更多然后八个客户端脚本块到页时,脚本块不会被添加您注册其顺序。 同样,使用
RegisterStartupScript() 向多然后八个客户端脚本块到页时, 脚本块不会被添加您注册其顺序。 如果客户端脚本的执行依赖于脚本块注册的顺序,然后在客户端脚本可能会不行为像您期望的那样。
注意 您可以保留注册顺序最多 16 个客户端脚本块。 为此,使用八 RegisterClientScriptBlock() 方法和 8 RegisterStartupScript() 方法。
注意 您可以保留注册顺序最多 16 个客户端脚本块。 为此,使用八 RegisterClientScriptBlock() 方法和 8 RegisterStartupScript() 方法。
原因
<script type=text/javascript>loadTOCNode(1, 'cause');</script>
已注册的脚本块位于
HybridDictionary 对象类。 如果有八个或更少的客户端脚本块,然后
HybridDictionary 实现与
ListDictionary 类集合中存储该项目。 当集合的大小增长到超过八个项目,
HybridDirectory 切换到一个
哈希表 表。
ListDictionary 维护添加的项,顺序,以便按顺序检索项。 但是,
哈希表 不维护该集合中项的注册的顺序。 因此,注册的串行顺序不会发生在客户端脚本的插入。
解决方案
<script type=text/javascript>loadTOCNode(1, 'resolution');</script>
若要解决此问题,向
StringBuilder 方法,添加所有客户端脚本块,然后注册为一个脚本块在
StringBuilder 。