RegisterStartupScript和RegisterClientScriptBlock输出位置的区别

URL:http://www.cnblogs.com/excellent/archive/2007/05/22/755264.html

 

Page.Response.Write("<script>var response;</script>");   

Page.RegisterStartupScript("RegisterStartupScript","<script>var RegisterStartupScript;</script>");   

Page.RegisterClientScriptBlock("RegisterClientScriptBlock","<script>var RegisterClientScriptBlock;</script>");  

Response.Write输出后的位置在源文件的第一行.

RegisterStartupScript输出后的位置会在<form>的上一行.(在asp.net自带的脚本和一些隐藏域之下).

RegisterClientScriptBlock输出后的位置会在</form>的下一行.

RegisterClientScriptBlock的原型与RegisterStartupScript相同,两个函数不同在于将其包含的脚本代码写入到HTML文件的不同位置.RegisterClientScriptBlock在 Page 对象的元素的开始标记后立即发出客户端脚本,RegisterStartupScript则是在Page 对象的元素的结束标记之前发出该脚本。如果你的脚本有与页面对象(doucument对象)进行交互的语句,则推荐使用RegisterStartupScript,反之如果要想客户端脚本尽可能早的执行,则可以使用RegisterClientScriptBlock或Response.Write。

RegisterClientScriptBlock一般返回的是客户端函数的包装,而RegisterStartupScript返回得函数在document装载完成后会执行,类似于我们平时所说的body    οnlοad="f()"里面的函数;这两个方法在客户端呈现的代码位置不同,RegisterClientScriptBlock在<form    runat=server>之后,而RegisterStartupScript在</form>之前。  

一楼讲了,补充一下相关的,这两个函数的连续使用确保在9次以内,否则写入的SCRIPT语句的顺序会不同于你预想的,因为关乎存储那些SCRIPT们的容器,当超过9个后,从LISTDICTIONARY转为HASHTABLE,大家知道一HASH了就顺序不补的了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值