濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 解決瀏覽器記住ajax請(qǐng)求并能前進(jìn)和后退問(wèn)題

解決瀏覽器記住ajax請(qǐng)求并能前進(jìn)和后退問(wèn)題

熱門(mén)標(biāo)簽:中國(guó)地圖標(biāo)注不明確情況介紹表 河間市地圖標(biāo)注app 怎樣在地圖標(biāo)注文字 東平縣地圖標(biāo)注app 電銷機(jī)器人 長(zhǎng)春 立陶宛地圖標(biāo)注 地圖標(biāo)注推銷坑人 大眾點(diǎn)評(píng)400電話怎么申請(qǐng) 上海企業(yè)外呼系統(tǒng)價(jià)錢

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

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

解決這個(gè)問(wèn)題的第一種方法就是利用location的hash值。當(dāng)url的hash值改變時(shí),頁(yè)面并不會(huì)跳轉(zhuǎn),但是瀏覽器此時(shí)會(huì)將此帶hash的url記錄到歷史記錄中。利用這個(gè)特性,我們可以人為的模擬帶歷史記錄功能的ajax請(qǐng)求。下面是這種方法的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)建兩個(gè)按鈕,點(diǎn)擊按鈕時(shí),向服務(wù)器發(fā)送請(qǐng)求,并將data-id通過(guò)參數(shù)帶到服務(wù)器,服務(wù)器返回對(duì)應(yīng)data-id的結(jié)果。
于此同時(shí),改變按鈕狀態(tài),并將location的hash值改為data-id的值。最后監(jiān)聽(tīng)location的hash值變化,重復(fù)上述步驟。

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;
});

當(dāng)我們點(diǎn)擊按“1-2-1”這樣的順序點(diǎn)擊按鈕時(shí),控制臺(tái)的輸出如下

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

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

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

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

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

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

標(biāo)簽:營(yíng)口 銅川 益陽(yáng) 遼寧 四川 本溪 玉樹(shù) 內(nèi)江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《解決瀏覽器記住ajax請(qǐng)求并能前進(jìn)和后退問(wèn)題》,本文關(guān)鍵詞  解決,瀏覽器,記住,ajax,請(qǐng)求,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《解決瀏覽器記住ajax請(qǐng)求并能前進(jìn)和后退問(wèn)題》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于解決瀏覽器記住ajax請(qǐng)求并能前進(jìn)和后退問(wèn)題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    天水市| 德保县| 惠水县| 邹城市| 泰安市| 莆田市| 武平县| 西畴县| 四会市| 夏邑县| 陆川县| 伽师县| 乌拉特后旗| 上饶市| 准格尔旗| 乌兰县| 德安县| 北碚区| 丰顺县| 鄂托克前旗| 阿坝县| 南岸区| 平阴县| 肇庆市| 香港| 苍梧县| 甘洛县| 长海县| 永泰县| 循化| 临清市| 安陆市| 舒城县| 桂林市| 合肥市| 阳原县| 富川| 铅山县| 海宁市| 若尔盖县| 汪清县|