真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

為靈臺(tái)等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及靈臺(tái)網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站制作、靈臺(tái)網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

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

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

解決這個(gè)問題的第一種方法就是利用location的hash值。當(dāng)url的hash值改變時(shí),頁面并不會(huì)跳轉(zhuǎn),但是瀏覽器此時(shí)會(huì)將此帶hash的url記錄到歷史記錄中。利用這個(gè)特性,我們可以人為的模擬帶歷史記錄功能的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;
}
     1  2

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

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

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


當(dāng)前題目:如何解決瀏覽器記住ajax請求并能前進(jìn)和后退的問題
網(wǎng)頁地址:http://weahome.cn/article/jshhgp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部