亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

頁面跳轉后返回原頁面回到原頁面跳轉前的位置怎么實現?

頁面跳轉后返回原頁面回到原頁面跳轉前的位置怎么實現?

移動端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 關注
  • 11284 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號