About Page.ClientScript.RegisterClientScriptBlock

之前经常会用到向注册客户端脚本,对IsClientScriptBlockRegistered一直没有弄清怎么回事(.NET 1.1不需要传入Type参数),总之每次按MSDN推荐的方法写就是了。

今天终于写了段代码来测试了一下。原来是这么回事。

输出结果(3次Response.Write, 2次Alert)。

1.一个脚本块跟Type和Key相关;

2.相同的Type和Key,如果不检查,虽然不会重复注册(系统会帮忙检查),但会浪费点资源去重复计算(尤其是生成脚本代码多的情况下);

3.如果控件里面要用到重复的脚本,那应该用动态生成的Key了(UniqueID不错吧?)

MDSN官方说法:

ClientScriptManager.IsClientScriptBlockRegistered 方法 (Type, String)

在调用 RegisterClientScriptBlock 方法之前调用此方法,以避免注册重复的脚本。如果创建脚本时需要大量的服务器资源,则这一点尤其重要。

客户端脚本由它的键和类型唯一标识。具有相同的键和类型的脚本被视为重复脚本。

参考:http://msdn.microsoft.com/zh-cn/library/at3x3a1z(VS.80).aspx

原文地址:https://www.cnblogs.com/nonlyli/p/1275234.html