鍍金池/ 問答/HTML5  PHP  HTML/ thinkpphp框架中,在列表頁(yè)使用ajax實(shí)現(xiàn)“點(diǎn)擊加載更多”,如何做到返回

thinkpphp框架中,在列表頁(yè)使用ajax實(shí)現(xiàn)“點(diǎn)擊加載更多”,如何做到返回不重新加載數(shù)據(jù)?

場(chǎng)景大概是這樣的:

一個(gè)列表頁(yè),初次打開列出比如 10 個(gè)多商品,通過“點(diǎn)擊加載更多”,來加載更多商品(每次加載 10 個(gè)商品)。然后點(diǎn)擊商品會(huì)進(jìn)入“商品詳情頁(yè)面”。

問題是,從“商品詳情頁(yè)面”后退到“列表頁(yè)”的時(shí)候,列表頁(yè)還是初次打開的那 10 個(gè)商品,之前點(diǎn)擊“點(diǎn)擊加載更多”出來的數(shù)據(jù)沒了(又需要再次點(diǎn)擊加載更多),以致于用戶都不知道我瀏覽到了哪一個(gè)商品了,每次返回都要重新加載。

我希望的結(jié)果是,后退的時(shí)候,“列表頁(yè)”依然是上一次的狀態(tài)。這樣我就知道我瀏覽到了哪里。以及可以繼續(xù)瀏覽后面的內(nèi)容。

效果可以參考下京東手機(jī)版搜索頁(yè)面那樣
https://so.m.jd.com/ware/sear...

回答
編輯回答
厭惡我

樓上說的沒錯(cuò),還有個(gè)辦法就是在打開商品詳情的時(shí)候不要新打開一個(gè)頁(yè)面,而是在本頁(yè)面加載出一個(gè)圖層(z-index)置于列表頁(yè)之上,然后點(diǎn)關(guān)閉時(shí)銷毀這個(gè)圖層。

2018年4月7日 03:51
編輯回答
尐潴豬
history.pushState 了解一下

其實(shí)需要做的就是保存之前的列表,以及滾動(dòng)位置。這樣的話。每次拉回來的數(shù)據(jù)都存在localstroage里面,performance.navigation.type判斷是后退的話,就去拿數(shù)據(jù)

2017年4月7日 19:58