为了账号安全,请及时绑定邮箱和手机立即绑定

页面跳转后返回原页面回到原页面跳转前的位置怎么实现?

页面跳转后返回原页面回到原页面跳转前的位置怎么实现?

移动端A页面用了iscroll插件滚动显示订单,通过几次ajax加载更多的订单后点击订单详情跳转到订单详情B页面,要求是从B页面返回时(如安卓手机点击安卓手机的返回键)不刷新页面并停留在点击订单详情的那个订单的位置上?用了history,onbeforeunload好像都实现不了,如果A页面没经过ajax加载更多怎么实现,若加载了几次又怎么实现呢
查看完整描述

1 回答

已采纳
?
woshiajuana

TA贡献211条经验 获得超152个赞

你都不做数据缓存吗,如果没有用到框架,那思路可以这样

假如一页有20项数据,下拉每次加载10条,然后你要把这些数据都给存在session Storage中,然后你跳转订单详情的时候要把滚动条的位置缓存在session Storage,再一次回退到这个页面到时候,先去取数据,然后再让滚动条滚动到你记录的位置即可

流程就是订单页,先去判断sessionStorage有没有缓存订单数据,如果有,则获取订单数据渲染页面,再获取sessionStorage中的位置信息,如果位置信息没有,则滚动距离默认为0,有的话让滚动条滚动到指定位置。如果sessionStorage中没有订单数据,则先用ajax去获取订单数据,然后执行存储sessionStorage

下拉加载数据,把数据要与之前请求的数据合并在同一个数组里,然后再缓存在sessionStorage中

跳订单详情页面的时候,记得缓存滚动条的位置

查看完整回答
1 反对 回复 2017-05-22
  • 慕粉1430088708
    慕粉1430088708
    非常感谢回答,我这的业务情况是订单列表包裹在iscroll插件下的,每次ajax向后台传条件从而返回数据到页面再进行渲染,这个条件不止是分页数还有其他筛选条件,如果从缓存中取数据那下一次加载就不能保证是在筛选条件下需要的数据,你的解决方法对于只有分页数作为条件的自动加载滚动成立 我发现IOS上点击订单详情返回上一页是直接读的缓存,页面并未刷新并直接记录跳转前的状态(不考虑新数据插入得刷新页面的情况),这个能不通过js滚动而直接用浏览器缓存实现么
  • woshiajuana
    woshiajuana
    不冲突的呀,无论是分页加载还是下拉加载还是筛选,你都是把筛选的条件传递给后台,后台开发返回给你json数据 例如你订单页首次进来,用一个变量去存储用户的筛选条件,首次进来,用户当然没有筛选,请求20条数据,用户滑动页面,看到最后一条数据,触发下拉再次去请求第二页的数据。把得到的数据与之前的数据放在一起。这个时候用户输入筛选条件,点击筛选,你记录一下用户的筛选条件,重新把用户的筛选条件传递给后台,后台返回json数据,下拉触发重新请求,因为你筛选条件变量存储有用户的筛选条件,请求的就是第二页筛选的数据 这个你得找开发配合一下,比如定一个条件字段x,当后台接收到x的数据为空,就代表用户没有筛选数据,反正则筛选用户的数据
  • 慕粉1430088708
    慕粉1430088708
    可以可以,已经用你给的思路解决了,但是不能不通过js什么的直接用history对象读取缓存页面解决这个问题吗?
点击展开后面3
  • 1 回答
  • 1 关注
  • 11138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信