Page.RegisterStartupScript的解释

wangxiaofeiwuqiao 2009-01-05 10:30:31
谁能帮我解释下:
Page.RegisterStartupScript("","<script language='javascript'>window.alert('弹出对话框')</script>")与
Response.Write("<script>alert('弹出对话框')</script>")的区别?

我知道的是:Response.Write方法会弹出一个对话框,并且点击后会刷新整个页面(要回发到服务器)。 Page.RegisterStartupScript是注册脚本,是不是不用回发到服务器?它比Response.Write方法好在哪里,不好又在那里?
...全文
2384 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwzbetter 2012-08-18
  • 打赏
  • 举报
回复
刚遇到错位的问题,学习了
ruolins 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wizard1 的回复:]
好处就是一个刷新页面 一个不刷新
[/Quote]
是的,每次在修改一个页面的时候,如果用了response.write()一般错位,Page.Cl.....就
不会
asuka986 2010-03-15
  • 打赏
  • 举报
回复
zhuanshen712讲得真明白!
heling0223 2009-10-27
  • 打赏
  • 举报
回复
zhuanshen712 讲的太好了
lidinrui3 2009-05-07
  • 打赏
  • 举报
回复
我做项目时遇到过,的确是,CSS变形....
wangxiaofeiwuqiao 2009-01-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 liu2008hz 的回复:]
看有一些网上的说法,说是用Response.Write,可能会使得页面的样式变掉(但是本人自己没有碰到过),建议用RegisterStartupScript
[/Quote]
我也没碰到过
glt3260053 2009-01-05
  • 打赏
  • 举报
回复
page.registerstartupscript()方法会把js脚本添加到body结束标记前。
Response.Write()方法是把内容添加到当前输入流中。
page.registerstartupscript()是向页面注册脚本的。Request.Write()是向页面输入内容。
Hertz_liu 2009-01-05
  • 打赏
  • 举报
回复
看有一些网上的说法,说是用Response.Write,可能会使得页面的样式变掉(但是本人自己没有碰到过),建议用RegisterStartupScript
wangxiaofeiwuqiao 2009-01-05
  • 打赏
  • 举报
回复
那用那个更加好点?我觉得Page.RegisterStartupScript 要好点,请指教!
zhxhdean 2009-01-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhuanshen712 的回复:]
Response.Write(" <script>");输出在文件头部,一打开就执行。
而RegisterStartupScript返回得函数在document装载完成后会执行,类似于我们平时所说的body onload="f()"里面的函数;
====
还有就是这两个都无所谓发回到服务器不发回到服务器之说,他们都是从服务器返回的对客户端的请求,只不过 Response.Write是放到最开头,也就是页面的 <html>标签,而js是解释性的语言, <html>之前的js语句会被解释,所以说,用Respo…
[/Quote]
讲的太好了
wizard1 2009-01-05
  • 打赏
  • 举报
回复
好处就是一个刷新页面 一个不刷新
zhuanshen712 2009-01-05
  • 打赏
  • 举报
回复
更正一下:
还有就是这两个都无所谓发回到服务器不发回到服务器之说,他们都是从服务器返回的对客户端的请求,只不过 Response.Write是放到最开头,也就是页面的 <html>标签之前,而js是解释性的语言
jiang_jiajia10 2009-01-05
  • 打赏
  • 举报
回复
Page.RegisterClientScriptBlock
脚本将会被放在紧挨“</form>”的前面。
Page.RegisterStartupScript
脚本将会被放在紧挨后几个隐藏的input的后面。
zhuanshen712 2009-01-05
  • 打赏
  • 举报
回复
Response.Write("<script>");输出在文件头部,一打开就执行。
而RegisterStartupScript返回得函数在document装载完成后会执行,类似于我们平时所说的body onload="f()"里面的函数;
====
还有就是这两个都无所谓发回到服务器不发回到服务器之说,他们都是从服务器返回的对客户端的请求,只不过 Response.Write是放到最开头,也就是页面的<html>标签,而js是解释性的语言,<html>之前的js语句会被解释,所以说,用Response.Write的效果如下:
<script>alert('弹出对话框') </script>//遇到这句之后,就会弹出对话框。
<html>
....
而弹出对话框未点确定之前,页面什么东西都没有,点了确定之后继续解释其他的语句,所以就像回发到服务器一样,其实不是回发到了服务器。
而RegisterStartupScript就是在页面加载完之后的事情了,此时,页面已经完全呈现出来了,所以不会在刷新...
wangxiaofeiwuqiao 2009-01-05
  • 打赏
  • 举报
回复
Ok,结贴
flashlove2008 2009-01-05
  • 打赏
  • 举报
回复
write的话页面会乱掉 输出在页面源代码第一行 导致CSS失效
skeljy 2009-01-05
  • 打赏
  • 举报
回复
mark
wuyq11 2009-01-05
  • 打赏
  • 举报
回复
RegisterStartupScript是在表单尾部加有script代码,即</form>前
RegisterStartupScript返回函数在document装载完成后会执行,类似于我们平时所说的body onload="f()"里面的函数;
Response.Write是在文件的開頭添加script代碼
再按html的順序執行
http://www.cnblogs.com/dotnetearthworm/archive/2008/12/19/1358029.html
bhbhxy 2009-01-05
  • 打赏
  • 举报
回复
response.write直接在页头输出,这样就会打乱文档模型,使得页面的样式和原有样式不匹配,可以做个登录页面然后response.write("<script language='javascript'>alert();</script>");看看效果
而page.registerstartupscript()不会
qq196260188 2009-01-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhuanshen712 的回复:]
Response.Write(" <script>");输出在文件头部,一打开就执行。
而RegisterStartupScript返回得函数在document装载完成后会执行,类似于我们平时所说的body onload="f()"里面的函数;
====
还有就是这两个都无所谓发回到服务器不发回到服务器之说,他们都是从服务器返回的对客户端的请求,只不过 Response.Write是放到最开头,也就是页面的 <html>标签,而js是解释性的语言, <html>之前的js语句会被解释,所以说,用Respo…
[/Quote]

什么都不用说,,,这位大哥己说了

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧