response.redirect 与location.href 的区别
2016-02-17 16:28
405 查看
最近做项目时发现,先弹出提示框,再跳转页面
这样写:Jscript.Alert("你好,Hello!");
Response.Redirect("/index.aspx");
只是页面跳转了,与这样写Response.Redirect("/index.aspx");没什么区别
所以我就用location.href
这样写:Response.Write("<script>alert('你好,Hello!');location.href='/index.aspx';</script>");
就能得到我想的先弹出提示框,再跳转页面,接下来就说一说这两者的区别:
当Response.Redirect()方法被调用时,它会创建一个应答, 应答头中指出了状态代码302(表示目标已经改变)以及新的目标URL。 浏览器从服务器收到该应答,利用应答头中的信息发出一个对新URL的请求。 这就是说,使用Response.Redirect方法时重定向操作发生在客户端,总共涉及到两次与服务器的通信(两个来回): 第一次是对原始页面的请求,得到一个302应答, 第二次是请求302应答中声明的新页面,得到重定向之后的页面。
如果你请求含有response.redirect的页面时,在服务器端已经给你转向了,服务器遇到该语句时直接转向目的页面. 而location.href一般是浏览器遇到该语句时,重新向另一个地址进行请求,可见,response.redirect只是一次请求,而客户端使用location转向时要两次向服务器进行请求. 因为服务器端是不存在window等浏览器窗口的,所以location绝对不会是服务端代码,只能在客户端输出.
事实上,如果在客户端中,js语句中同样也存在redirect语句,这时两者的作用一样. 但机理不同,redirect只是一个转向语句,遇到该语句时,直接转向,客户端是两次请求的. 而location相当于你在地址栏中输入了地址后按回车! 如果对转向没有控制的话,两者在客户端是一样的. 但response.redirect往往用于服务端,而location只能用在客户端!
也就是说location.href是在客户端提出的重定向,response.redirect是在服务器端提出的重定向。window.location.href 语句可以实现一个框架的页面在执行服务器端代码后刷新另一个框架的页面
这样写:Jscript.Alert("你好,Hello!");
Response.Redirect("/index.aspx");
只是页面跳转了,与这样写Response.Redirect("/index.aspx");没什么区别
所以我就用location.href
这样写:Response.Write("<script>alert('你好,Hello!');location.href='/index.aspx';</script>");
就能得到我想的先弹出提示框,再跳转页面,接下来就说一说这两者的区别:
response.redirect是请求转向,location.href 是浏览器转向.
Response.Redirect方法导致浏览器链接到一个指定的URL。当Response.Redirect()方法被调用时,它会创建一个应答, 应答头中指出了状态代码302(表示目标已经改变)以及新的目标URL。 浏览器从服务器收到该应答,利用应答头中的信息发出一个对新URL的请求。 这就是说,使用Response.Redirect方法时重定向操作发生在客户端,总共涉及到两次与服务器的通信(两个来回): 第一次是对原始页面的请求,得到一个302应答, 第二次是请求302应答中声明的新页面,得到重定向之后的页面。
如果你请求含有response.redirect的页面时,在服务器端已经给你转向了,服务器遇到该语句时直接转向目的页面. 而location.href一般是浏览器遇到该语句时,重新向另一个地址进行请求,可见,response.redirect只是一次请求,而客户端使用location转向时要两次向服务器进行请求. 因为服务器端是不存在window等浏览器窗口的,所以location绝对不会是服务端代码,只能在客户端输出.
事实上,如果在客户端中,js语句中同样也存在redirect语句,这时两者的作用一样. 但机理不同,redirect只是一个转向语句,遇到该语句时,直接转向,客户端是两次请求的. 而location相当于你在地址栏中输入了地址后按回车! 如果对转向没有控制的话,两者在客户端是一样的. 但response.redirect往往用于服务端,而location只能用在客户端!
也就是说location.href是在客户端提出的重定向,response.redirect是在服务器端提出的重定向。window.location.href 语句可以实现一个框架的页面在执行服务器端代码后刷新另一个框架的页面
相关文章推荐
- 2016个人生涯
- 防止字溢出
- SCCM TP4部署前的Active Directory准备
- SCCM TP4部署前的Active Directory准备
- android 的事件分发从源码分析
- ShareASale平台推广
- 自定义PHP的错误报告处理方式
- 使用 MANIFEST.MF 文件为打包添加版本号
- @SuppressWarnings的使用、作用、用法
- UE3 MemLeakCheck Tracking(内存泄露检测追踪)
- 浅谈HTML移动Web开发(转)
- 加速 Android 开发的五大开源网站
- Using the Material Theme
- Ubuntu 14.04LTS修改显示分辨率
- MAC中设置android adb环境变量和用wifi真机调试
- Android 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚
- 互联网英文简写
- struts2 使用dmi
- 控制反转与依赖注入
- Android Context完全解析,你所不知道的Context的各种细节