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

溫馨提示×

溫馨提示×

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

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

如何解決瀏覽器記住ajax請求并能前進和后退的問題

發布時間:2021-07-13 12:40:29 來源:億速云 閱讀:259 作者:小新 欄目:web開發

這篇文章給大家分享的是有關如何解決瀏覽器記住ajax請求并能前進和后退的問題的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

在我們瀏覽不同網頁的時候,我們可以通過瀏覽器的前進、后退鍵來去到我們前后訪問過的頁面。這都有一個共同點,就是 瀏覽器地址欄的地址改變了。瀏覽器自身維護了一個記錄用戶訪問頁面歷史的棧,棧中記錄了用戶訪問不同頁面的先后順序。

但是在開發中,我們經常會用到ajax技術去提升網頁的用戶體驗。但是ajax本身并不改變瀏覽器地址欄中的url,是在同一個網頁內部操作的,這時,瀏覽器并不會記錄ajax請求的記錄。在這種情況下,用戶在一個頁面觸發的5次ajax請求后,點了后 退按鈕,瀏覽器不會再次請求之前的ajax請求,而是返回了上一頁。

解決這個問題的第一種方法就是利用location的hash值。當url的hash值改變時,頁面并不會跳轉,但是瀏覽器此時會將此帶hash的url記錄到歷史記錄中。利用這個特性,我們可以人為的模擬帶歷史記錄功能的ajax請求。下面是這種方法的demo。

ul{
 margin:0;
 padding:0;
}
li{
 list-style: none;
 display: block;
 float: left;
 border: 1px solid #000;
 padding: 10px;
 margin-right: 20px;
 cursor: pointer;
}
li.active{
 background-color: #000000;
 color: #fff;
}
<ul>
 <li data-id="1">1</li>
 <li data-id="2">2</li>
</ul>

先創建兩個按鈕,點擊按鈕時,向服務器發送請求,并將data-id通過參數帶到服務器,服務器返回對應data-id的結果。
于此同時,改變按鈕狀態,并將location的hash值改為data-id的值。最后監聽location的hash值變化,重復上述步驟。

function sendAjax(hash){
 console.log("recived data:" + hash);
}
function btnStatus(hash){
 $("li").removeClass('active');
 $("li[data-id="+hash+"]").addClass('active');
}
function onHashChange(){
 var curHash = window.location.hash.replace("#","");
 if(curHash){
  btnStatus(curHash);
  sendAjax(curHash);
 }
}
window.onhashchange = onHashChange;
$("li").click(function(){
 var id = $(this).attr('data-id');
 window.location.hash = id;
});

當我們點擊按“1-2-1”這樣的順序點擊按鈕時,控制臺的輸出如下

recived data:1
recived data:2
recived data:2

此時我們連續按三次返回按鈕,控制臺輸出如下

recived data:1
recived data:2
recived data:1

可見這樣就模擬實現了瀏覽器記錄ajax請求的功能。

感謝各位的閱讀!關于“如何解決瀏覽器記住ajax請求并能前進和后退的問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

嘉祥县| 玉林市| 浮山县| 西贡区| 内乡县| 长丰县| 长宁区| 元氏县| 彭阳县| 禹城市| 鄂托克旗| 玛沁县| 阳谷县| 高碑店市| 仁寿县| 永嘉县| 防城港市| 句容市| 澄江县| 左权县| 金川县| 辽阳市| 广元市| 富民县| 木里| 正宁县| 水富县| 大英县| 靖安县| 建瓯市| 北京市| 嘉峪关市| 罗江县| 曲阜市| 呼伦贝尔市| 新昌县| 任丘市| 新津县| 香河县| 百色市| 镇安县|