据我所知,我们可以用两种方法来重定向HTTP响应。
- 使用Java脚本window.location的;
- 在ASP.Net使用HttpContext.Current.Response.Redirect
从功能和最终用户的角度来看,是两种方法可互换?
据我所知,我们可以用两种方法来重定向HTTP响应。
从功能和最终用户的角度来看,是两种方法可互换?
window.location
需要JavaScript和针对浏览器的页面变更之前,先下载并呈现原始页面的内容(包括CSS /脚本)。
Response.Redirect
,而另一方面,发出一个Location头302个状态码。 这会导致浏览器立即请求下一个页面,而无需下载/绘制原第一。
根据您的其他问题 ,这是值得注意的是, window.location
具有能够位置改变之前执行其他JavaScript的利益。 例如,改变另一个帧的位置,并在同一时间的当前帧。
我不熟悉HttpContext.Current.Response.Redirect
,但我想它发出一个HTTP响应301或类似的东西。
HTTP响应代码总是优选的,因为它们是内置的,好了,HTTP。 每个人都知道他们,他们总是工作。 搜索引擎和其他自动化应用尊重他们。
在另一方面JavaScript方法并不总是工作和是非标准的。
此外,HTTP编码所传递的数据被保持在最低限度,而Javascript方法总是需要加载整个页面。
编辑:举例说明:
这是所有需要传送用于HTTP重定向工作,标准的HTTP标头:
HTTP/1.1 301 Moved Permanently
Location: http://somenewlocation.com/
对于JavaScript,它更像是这样的:
HTTP/1.1 200 OK
Date: Wed, 22 Jul 2009 07:56:14 GMT
Server: Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Transfer-Encoding: chunked
Content-Type: text/html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script>window.location = "somewhere.com"</script>
</head>
<body>
</body>
</html>
一个完整的HTML文档需要传输和评估,这将需要更长的时间,而不是由任何东西,但JavaScript的浏览器精明的理解。