日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

history保存列表頁ajax請求的狀態使用示例詳解

瀏覽:479日期:2022-06-12 08:16:33
目錄
  • 問題
    • 優化前代碼
  • history
    • history.pushState()
    • window.onpopstate
  • 問題2

    問題

    最近碰到兩個問題:

    • 從首頁進入列表頁之后,點擊下一頁的時候,使用ajax請求更新數據, 然后點擊瀏覽器“后退”按鈕就直接返回到首頁,實際這里想要的效果是返回列表頁上一頁。
    • 在列表頁分頁為2的頁面進入詳情頁,然后點擊“后退”按鈕,返回的事列表頁分頁為1的頁面。沒法記住之前分頁狀態。

    優化前代碼

    代碼如下,在頁數變化的時候,去異步請求數據,渲染頁面。

    const currentChange = (currentPage) => {
        ajax(`請求地址/${currentPage}`)
        .then(renderPage)
    }
    

    history

    經過幾番搜索,發現可以用History 接口來實現我們想要功能。

    history.pushState()

    按指定的名稱和URL(如果提供該參數)將數據push進會話歷史棧,數據被DOM進行不透明處理;你可以指定任何可以被序列化的javascript對象。具體描述可以參考文檔

    通過history.pushState(state, title, url)可以修改會話歷史棧,把我們需要保存的數據存到state中,這里我們存入一個對象,屬性為當前頁數;title一般沒什么用,這里傳入null;url會修改當前歷史紀錄的地址,瀏覽器在調用pushState()方法后不會去加載這個URL

    假設當前currentPage為1,當前url為www.example.com/search/index

    ...
    const pushState = () => {
        const url = `/search/index/${currentPage}`
        history.push({
    page: currentPage
        }, null, url)
    }
    const currentChange = (currentPage) => {
        ajax(`請求地址/${currentPage}`)
        .then(res =>{
    pushState(currentPage)
    renderPage()
        })
    }
    ...
    

    現在代碼執行順序是:頁數改變 => ajax請求 => pushState => renderPage()

    在pushState之后當前url變成www.example.com/search/index/1

    window.onpopstate

    現在我們通過history.pushState()方法把狀態存入歷史會話中了,接下來就要監聽window.onpopstate事件

    參考mdn文檔window.onpopstate

    每當處于激活狀態的歷史記錄條目發生變化時,popstate事件就會在對應window對象上觸發.

    調用history.pushState()或者history.replaceState()不會觸發popstate事件. popstate事件只會在瀏覽器某些行為下觸發, 比如點擊后退、前進按鈕(或者在JavaScript中調用history.back()、history.forward()、history.go()方法).

    接下來監聽這個事件

    window.addEventListener("popstate", (event) => {
    	if(event.state !== null){
    	    page = event.state.page
    	    changeCurrentPage(page) // 修改當前頁數
    	}
    })
    

    當popstate觸發時,會修改當前頁數,然后觸發之前定義的currentChange方法,更新數據,渲染頁面。

    問題2

    到此為止,問題1就解決了。

    接下來要解決問題二:從詳情頁返回列表頁,記住之前的狀態
    這里我用url來記錄狀態,之前pushState推入的url就派上用場了。 只要把進入頁面首次請求的地址改成當前url就可以了

    假設之前push的url為www.example.com/search/index/5,從詳情頁返回之后url還會顯示www.example.com/search/index/5

    mounted () {
        ajax(location.href)
    }
    

    這樣就完成了。 當然如果你的狀態比較復雜,可以把數據存入本地Storage,添加一些判斷即可

    以上就是history保存列表頁ajax請求的狀態使用示例詳解的詳細內容,更多關于history保存列表頁ajax請求狀態的資料請關注其它相關文章!

    標簽: Ajax
    日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
    日本不卡视频一二三区| 婷婷激情图片久久| 蜜臀va亚洲va欧美va天堂| 中国女人久久久| 在线 亚洲欧美在线综合一区| 日本久久综合| 久久精品国产www456c0m| 亚洲专区欧美专区| 青草国产精品| www在线观看黄色| 精品1区2区3区4区| 日韩动漫一区| 国产在线一区不卡| 午夜国产一区二区| 青青草精品视频| 精品免费av| 99国产精品99久久久久久粉嫩| 色狠狠一区二区三区| 麻豆精品在线观看| 在线成人动漫av| 一级成人国产| 日韩成人a**站| 免费国产自线拍一欧美视频| 欧美日韩中文| 日韩欧美一区二区三区在线视频 | 一区二区亚洲精品| 日韩中文字幕av电影| 欧美久久一区二区三区| 福利一区二区免费视频| 免费av一区| 国产精品欧美三级在线观看| 久久久久久久久久久9不雅视频| 丝瓜av网站精品一区二区| 欧美日本不卡| 日韩1区在线| 蜜桃av一区二区| 国产一区二区三区探花| 视频一区视频二区在线观看| 国产一区二区精品久| 午夜一级在线看亚洲| 久久天堂影院| 首页国产欧美日韩丝袜| 国产激情在线播放| 一区二区国产在线观看| 国产高清不卡| 三级久久三级久久久| 神马久久午夜| 日本少妇精品亚洲第一区| 欧美+日本+国产+在线a∨观看| 日本一区中文字幕| 婷婷丁香综合| 肉色欧美久久久久久久免费看| 亚洲v天堂v手机在线| 播放一区二区| 国产精品99久久免费观看| 99国产精品| 色吊丝一区二区| 国产精品www.| 日韩欧美美女在线观看| 久久三级视频| 麻豆一区二区三| 色8久久久久| 欧美不卡在线| 国产精品xxx| 99国产精品| 久久影院午夜精品| 国产伦理久久久久久妇女| 红桃视频欧美| 91精品蜜臀一区二区三区在线 | 蜜臀国产一区二区三区在线播放| 日韩精品影视| 精品一区二区三区免费看 | 激情视频网站在线播放色| 欧美日韩一区二区三区四区在线观看 | 日韩毛片视频| 久久精品国产99国产精品| 亚洲欧美日韩精品一区二区| 视频小说一区二区| 老司机精品视频在线播放| 日韩激情啪啪| 国产精品日韩| 香蕉成人av| 日韩a一区二区| 精品福利久久久| 欧美精品1区| 久久亚洲精品中文字幕| 国产丝袜一区| 国产精品成人**免费视频 | 91久久亚洲| 1024精品久久久久久久久| 亚洲a一区二区三区| 视频二区不卡| 国产精品久久久久久久久妇女| 奇米狠狠一区二区三区| 日韩精品一区二区三区免费视频| 日韩专区在线视频| 伊人久久成人| 好吊视频一区二区三区四区| 黄色日韩在线| 尹人成人综合网| 亚洲美洲欧洲综合国产一区| 美女网站一区| 人人爽香蕉精品| 丝袜国产日韩另类美女| 少妇精品久久久一区二区| 欧美专区一区| 麻豆视频久久| 日韩一区二区中文| 蜜臀久久99精品久久一区二区| 日韩欧美精品一区| 免费视频一区三区| 美女国产精品| 日韩精品中文字幕吗一区二区| 国产亚洲一卡2卡3卡4卡新区| 国产精品蜜月aⅴ在线| 精品国产一区二区三区2021| 高清一区二区| 欧美精选一区二区三区| 午夜一级久久| 日本天堂一区| 国产91在线精品| 不卡视频在线| 日韩欧美久久| 精品少妇一区| 成人在线超碰| 夜久久久久久| 国产精品毛片视频| 日韩三区免费| 在线免费观看亚洲| 国产精品亚洲二区| 久久国产欧美| 亚洲精品一二三**| 精品国产aⅴ| 欧美亚洲国产一区| 日韩高清不卡在线| 日韩国产在线| 最近国产精品视频| 国语精品一区| 久久国产精品毛片| 日韩高清不卡在线| 日韩理论视频| 综合五月婷婷| 国产精品精品国产一区二区| 国产一区二区精品| 国产精品日韩精品在线播放| 久久精品高清| 国产欧美日韩免费观看| 久久婷婷激情| 欧美日韩精品一区二区三区视频| 日韩精品不卡一区二区| 亚洲精品麻豆| 久久婷婷av| 久久精品97| 夜夜精品视频| 国产精品一区二区三区美女| 成人av动漫在线观看| 国产精品**亚洲精品| 尤物在线精品| 欧美xxxx中国| 欧美日韩精品一区二区三区视频| 国精品一区二区| 久久麻豆视频| 中文字幕日本一区| 婷婷成人在线| 麻豆国产精品777777在线| 热久久国产精品| yellow在线观看网址| 欧美在线首页| 中文在线不卡| 久久av电影| 四虎精品永久免费| 精品在线播放| 国产精品久久久久蜜臀| 欧美日韩伊人| 亚洲深深色噜噜狠狠爱网站 | 97精品国产| 国产精品一级| 日韩高清电影一区| 亚洲一区二区三区免费在线观看 | 国产精品久久久久av蜜臀| 在线亚洲欧美| 免费不卡中文字幕在线| 精品国产aⅴ| 国产精品亚洲欧美日韩一区在线| 亚洲一区有码| 性色一区二区| 五月天久久网站| 欧美丝袜一区| 久久美女性网| 欧美成人精品三级网站| 精品日韩在线| 美女视频网站久久| 久久国产精品免费精品3p| 国产视频一区免费看| 成人自拍av| 亚洲www免费| 日韩av一级| 亚洲成人国产| 欧美性感美女一区二区| 久久久久蜜桃|