主頁 > 知識庫 > 解決瀏覽器記住ajax請求并能前進和后退問題

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

熱門標簽:中國地圖標注不明確情況介紹表 河間市地圖標注app 怎樣在地圖標注文字 東平縣地圖標注app 電銷機器人 長春 立陶宛地圖標注 地圖標注推銷坑人 大眾點評400電話怎么申請 上海企業(yè)外呼系統(tǒng)價錢

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

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

解決這個問題的第一種方法就是利用location的hash值。當url的hash值改變時,頁面并不會跳轉(zhuǎn),但是瀏覽器此時會將此帶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>

先創(chuàng)建兩個按鈕,點擊按鈕時,向服務器發(fā)送請求,并將data-id通過參數(shù)帶到服務器,服務器返回對應data-id的結果。
于此同時,改變按鈕狀態(tài),并將location的hash值改為data-id的值。最后監(jiān)聽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

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

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

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

以上所述是小編給大家介紹的讓瀏覽器記住ajax請求并能前進和后退方法(一),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • 淺談Ajax請求與瀏覽器緩存
  • Ajax請求過程中下載文件在FireFox(火狐)瀏覽器下的兼容問題
  • js與jQuery實現(xiàn)的兼容多瀏覽器Ajax請求實例
  • Js 代碼中,ajax請求地址后加隨機數(shù)防止瀏覽器緩存的原因
  • 基于Jquery 解決Ajax請求的頁面 瀏覽器后退前進功能,頁面刷新功能實效問題

標簽:營口 銅川 益陽 遼寧 四川 本溪 玉樹 內(nèi)江

巨人網(wǎng)絡通訊聲明:本文標題《解決瀏覽器記住ajax請求并能前進和后退問題》,本文關鍵詞  解決,瀏覽器,記住,ajax,請求,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《解決瀏覽器記住ajax請求并能前進和后退問題》相關的同類信息!
  • 本頁收集關于解決瀏覽器記住ajax請求并能前進和后退問題的相關信息資訊供網(wǎng)民參考!
  • 推薦文章