首页 > 其他分享 >location.href和location.replace的区别

location.href和location.replace的区别

时间:2023-05-11 11:02:46浏览次数:40  
标签:replace window href jsp location 页面

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

若使用 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”); 

返回页面 1.jsp(首页) 
原因 是不向服务器发送请求的跳转 是向服务器发送请求的跳转

 

window.location.href=“3.jsp”;

返回页面   2.jsp

原理 window.history.go(-1);wondow.history.back();方法是根据服务器记录的请求决定该跳到哪个页面的


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

<body onpageshow="location.reload()">

 

标签:replace,window,href,jsp,location,页面
From: https://www.cnblogs.com/ranyonsue/p/17390405.html

相关文章

  • string replace multiple items
    Doastr.replace(';',',')andthenastr.split(',')orimportrere.split(';|,',string_to_split)>>>a='Beautiful,is;better*than\nugly'>>>importre>>>re.split(......
  • A-GPS的一个技术路径——Wi-Fi Location
    最近我们单位进行了一次搬家。单位的大家发现,自己在室内连接单位Wi-Fi时,手机里的各个软件只要需要用到定位服务的功能,无论是地图、打卡还是附近的人,都会发现自己定位在旧位置,从而导致各种各样的麻烦。GPS虽好但却不是万能的搭载有定位服务的手机目前都会使用卫星定位的方式来确......
  • vue3 vueRouter4 :No match found for location with path ***
    0.采用vue+router4做路由导航.首次载入控制台很干净.F5刷新后,控制台爆出警告,但点击路由正常工作.1.经过排查发现,是menu中使用了<router-link>这玩意,后来改造成  @click="router.push(ele.path)"即可消除警告 2.网络上各种方式我均尝试过,都是无效方案,比如:......
  • c/c++程序中获取当前可执行文件所在的目录路径,使用跨平台的program_location
    c/c++程序中获取当前可执行文件所在的目录路径对于大型工程中,可执行文件中通过c/c++代码获取到当前路径,可以很大方便于工程后续的部署与运维工作。比如说根据当前的可执行文件路径获取到配置文件的路径,然后加载读取配置文件。有了这个能力就不用再在操作系统中配置环境变量来指......
  • History和Location对象
       ......
  • mysql replace 正则替换
    先说结论:8.0版本之前不支持,只能采用曲线方法,例如:UPDATEtestsettest.data=REPLACE(test.data,SUBSTR(test.data,LOCATE("{",test.data),LOCATE("}",test.data)),"") 8.0之后使用REGEXP_REPLACE函数UPDATEtableNameset`name`=REGEXP_REPLACE(`name`,'......
  • nginx的location匹配顺序是怎么样的?rewrite转发到uptream和直接在proxy_pass转发到ups
    Nginxlocation匹配的顺序在Nginx配置文件中,location指令用于配置请求匹配到的URL路径对应的处理规则。location指令匹配URL路径的方式是先精确匹配,然后正则匹配,最后使用URI重写实现后备匹配。匹配顺序如下:先精确匹配location指令中以=开头的模式;然后正则匹......
  • mysql获取当前年月 mysql中replace into用法
    mysql获取当前年月 //1.获取年月日时分秒selectSYSDATE()AS'年月日时分秒';2020-07-0216:36:17//2.获取(年月日)selectDATE(CURDATE())as'年月日';selectCURDATE()as'年月日';selectcurrent_dateAS'年月日';2020-07-02//3.获取(时分秒):......
  • vue-router解决警告:No match found for location with path "XXXXXXX"
      使用vue-router时,在刷新页面时往往会出现这个警告:    这个问题产生的原因往往是因为vue在启动时,会校验当前页面的路由,而我们使用vue-router时,是在导航守卫中动态添加路由的,因此肯定找不到,而这个时候还没进入守卫,自然就会抛出这个警告了:  1、app.use(router)......
  • 一张图概括window.location里面的各属性含义
    一、window.location的各属性含义window.location的各属性,可以很方便的将当前访问地址的各组成取出来,以下是具体含义。  二、newURL的作用URL也属于标准库里面的内容,我们可以将自己的url进行处理,然后可以和类似window.location取出各属性值一样,取出对应的值 发现没......