91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

pushState中怎么利用Ajax實現無刷新頁面切換

發布時間:2021-08-07 17:12:19 來源:億速云 閱讀:127 作者:Leah 欄目:web開發

pushState中怎么利用Ajax實現無刷新頁面切換,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

一、API

1、pushState

pushState()有三個參數:一個狀態對象、一個標題(現在會被忽略),一個可選的URL地址。
state:與要跳轉到的URL對應的狀態信息。
title:空字符串(以后可能有用)。
url:要跳轉到的URL地址,不能跨域。

作用:將當前URL和history.state加入到history中,并用新的state和URL替換當前。不會造成頁面刷新。

2、replaceState

history.replaceState()操作類似于history.pushState(),不同之處在于replaceState()方法會修改當前歷史記錄條目而并非創建新的條目。

3、window.onpopstate

history.go和history.back(包括用戶按瀏覽器歷史前進后退按鈕)觸發,并且頁面無刷的時候(由于使用pushState修改了history)會觸發popstate事件,事件發生時瀏覽器會從history中取出URL和對應的state對象替換當前的URL和history.state。通過event.state也可以獲取history.state。

二、實現

場景很簡單,點擊按鈕下面的div中出現不同的圖片及標題,使用ajax刷新,并且產生歷史管理。

<p class="page">
  <a href="javascript:;">[ <span>1</span> ]</a>
  <a href="javascript:;">[ <span>2</span> ]</a>
  <a href="javascript:;">[ <span>3</span> ]</a>
  <a href="javascript:;">[ <span>4</span> ]</a>
</p>
<div>
  <img />
  <p class="title"></p>
</div>

核心代碼

  function setUrl(page){
    var url = location.pathname + '?page=' + page;
    history.pushState({
      url : url
    },'',url);
  }
//每次點擊按鈕的時候就往歷史記錄里面增加一個條目

注意首次載入的時候需要首次載入替換一下歷史記錄

  (function(){
    //默認顯示第一頁
    var url = location.pathname + '?page=1';
    //修改當前的歷史記錄
    history.replaceState({
      url : url
    },'',url); 
  })()

監聽window的popstage事件,事件發生時取到當前歷史對應的頁碼,然后執行ajax

  window.addEventListener('popstate',function(){
    var page = getPage();
    xhr(page);
  })

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙门县| 紫金县| 永仁县| 于都县| 定边县| 新宁县| 阳谷县| 怀安县| 汉阴县| 宣汉县| 盱眙县| 金沙县| 醴陵市| 阿瓦提县| 富源县| 儋州市| 勃利县| 新野县| 甘德县| 额济纳旗| 郑州市| 沙洋县| 漯河市| 衡阳市| 德兴市| 诏安县| 松阳县| 万年县| 昌平区| 明星| 砚山县| 汤阴县| 铜山县| 巴彦淖尔市| 托克逊县| 彭山县| 乐清市| 错那县| 肥西县| 酉阳| 松阳县|