页面跳转

开发工具与关键技术:VS2015,ASP.NET MVC

撰写时间:2019年5月15日

有关于页面跳转的一些小问题
此时有注册页面,登录页面,主页面三个页面
三页面为后台系统页面

页面跳转的代码,平时会用的C#里面自带的window.location.href来点击的时候实现页面跳转,一般在做一些后台系统在登录跳转的时候会用到window.location.replace来点击的时候发生页面跳转,window.location.href和window.location.replace都是页面跳转,它们之间有什么区别呢?
这里涉及到一个浏览器缓存的问题。

window.location.href
此时登录页面跳转到注册页面用到window.location.href,在我们看到的页面是注册页面,其实浏览器还把登录页面的路径给缓存下来了,这个可以通过观察浏览器左上角的前进或后退的按钮。
在这里插入图片描述
↑未跳转
在这里插入图片描述
↑已跳转
用window.location.href实现页面跳转,可以通过点击左上角的后退按钮回退到登录页面,在点击这个后退按钮的时候浏览器去调用了之前缓存下来的登录页面的路径,实现了回退的功能。

window.location.replace
此处登录页面跳转至主页面用到window.location.replace,两段代码同样的是跳转,此时来观察左上角的前进或后退按钮,这时候会发现无论是前进按钮还是后退按钮都是呈现灰色状态,此时表明浏览器并没有把登录页面的路径缓存下来。
在这里插入图片描述
↑未跳转
在这里插入图片描述
↑已跳转
其实window.location.replace在此处起到一个代替的作用,此处的登录页面的路径被主页面的路径替换掉了,浏览器没有了登录页面的缓存,前进或后退按钮自然而然地变成了灰色状态,window.location.replace只能进不能退,所以适合用在一些不允许回退的页面。

总结:
window.location.href:a页面跳至b页面,会在浏览器留下a页面的缓存路径,此时可以通过点击回退按钮回退到a页面。
window.location.replace:a页面跳至b页面,在浏览器缓存里a页面的路径被b页面的路径替换了。所以回退按钮呈灰色状态,无法点击。

你可能感兴趣的:(C#)