location.href和location.replace的区别

情景

比如支付过程中或者使用商品的优惠券,而使用这张优惠券需要取请求 一个第三方的地址,中间会有一次跳转。

若使用 window.location.href=“url” ,按流程操作是没问题的,但是如果用户点击返回,则无法跳回原本的提交订单的页面,会一直进行重复请求,造成程序出错。

所以,必须替换成 window.location.replace(“url”) 来跳转,保证在进入第三方后不会存入window.history,因此用户点击返回就可以绕过第三方地址,直接返回最初的页面。

区别

window.location.href=“url”
window.location.replace(“url”)

3个jsp页面(1.jsp ——> 2.jsp ——>3.jsp)。

从1.jsp(首页) 进入2.jsp之后, 2.jsp里面想跳转到3.jsp:用

window.location.replace("3.jsp");
window.location.href="3.jsp";

从用户界面来看是没有什么区别。但是当3.jsp页面有一个“返回”按钮,调用

window.history.go(-1);
window.history.back();

方法的时候,一点这个返回按钮就要返回2.jsp页面的话,区别就出来了:

-window.location.replace(“3.jsp”);window.location.href=“3.jsp”;
返回页面1.jsp(首页)2.jsp
原因是不向服务器发送请求的跳转是向服务器发送请求的跳转
原理window.history.go(-1);wondow.history.back();方法是根据服务器记录的请求决定该跳到哪个页面的

在ios的设备上当用户点击返回时,为了提高性能网页呈现的是快照形式,并不会更新内容,所以,在返回网页时需要用到localtion.reload() 来刷新页面 ,重新请求页面内容

<body onpageshow="location.reload()">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值