六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

點擊瀏覽器的返回按鈕,就會刷新歷史頁面這個問題的處理方案

[摘要]首先我們知道這個問題是如何發生的,假如我們有如下頁面列表信息頁面,點擊進入詳情頁面,在詳情頁面修改了數據通過歷史返回,再返回到列表信息頁面,因為列表信息是歷史返回的,還是默認顯示原來修改前的數據,要刷新一下才是修改后的數據,那么我們有什么辦法可以點擊手機返回按鈕就可以刷新之前歷史頁面中的數據呢?o...
首先我們知道這個問題是如何發生的,假如我們有如下頁面列表信息頁面,點擊進入詳情頁面,在詳情頁面修改了數據通過歷史返回,再返回到列表信息頁面,因為列表信息是歷史返回的,還是默認顯示原來修改前的數據,要刷新一下才是修改后的數據,那么我們有什么辦法可以點擊手機返回按鈕就可以刷新之前歷史頁面中的數據呢?

onpageshow事件和onload事件。 onpageshow 事件類似于 onload 事件,onload 事件在頁面第一次加載時觸發, onpageshow 事件在每次加載頁面時觸發,即 onload 事件在頁面從瀏覽器緩存中讀取時不觸發。

為了查看頁面是直接從服務器上載入還是從緩存中讀取,你可以使用 PageTransitionEvent 對象的 persisted 屬性來判斷。 如果頁面從瀏覽器的緩存中讀取該屬性返回 ture,否則返回 false

解決方案

通過onload方式

代碼如下:

頁面中寫一個隱藏的input

<input type="hidden" id="refreshed" value="no">

js操作如下

    onload=function(){
        var refreshedId=document.getElementById("refreshed");
        if(refreshedId.value=="no"){
            refreshedId.value="yes";
           } else{
             refreshedId.value="no";
             location.reload();
         }
    }

通過onpageshow 方式

這種方式在電腦上是沒有問題的,但是蘋果safari中返回不執行onload事件,要用如下方式:

window.onpageshow = function(event) {
    if (event.persisted) {
        window.location.reload() 
    }
};

通過實際操作發現,event.persisted在電腦中一直是返回false,但是在手機safari中是沒有問題的。

綜合解決方案

因此,可以如下寫代碼:

  if ((/iphone ipod ipad.*os 5/gi).test(navigator.appVersion)) {
        window.onpageshow = function(event) {
            if (event.persisted) {
                window.location.reload() 
            }
        };
    }else{
        onload=function(){
            var refreshedId=document.getElementById("refreshed");
            if(refreshedId.value=="no"){
                refreshedId.value="yes";
               } else{
                 refreshedId.value="no";
                 location.reload();
             }
        }
    }

通過上面代碼發現在safari中第一次打開頁面的時候,有時候會出現閃屏效果。

添加如下代碼:

$(window).bind("unload", function() { });

就沒有再出現閃屏效果了。

通過iframe方式阻止緩存

頁面中添加如下代碼

<iframe style="height:0px;width:0px;visibility:hidden" src="about:blank">
this prevents back forward cache
</iframe>

這種方式有待驗證。

通過時間戳強制刷新方式

下面代碼是針對iPad中safari返回按鈕問題

var showLoadingBoxSetIntervalVar;
var showLoadingBoxCount = 0;
var showLoadingBoxLoadedTimestamp = 0
function showLoadingBox(text) {
    var showLoadingBoxSetIntervalVar=self.setInterval(function(){showLoadingBoxIpadRelaod()},1000);
    showLoadingBoxCount = 0
    showLoadingBoxLoadedTimestamp = new Date().getTime();
    //Here load the spinner
}
function showLoadingBoxIpadRelaod()
{
    //計算時間超過500毫秒
    var diffTime = ( (new Date().getTime()) - showLoadingBoxLoadedTimestamp - 500)/1000;
    showLoadingBoxCount = showLoadingBoxCount + 1;
    var isiPad = navigator.userAgent.match(/iPad/i) != null;
    if(diffTime > showLoadingBoxCount && isiPad){
        location.reload();
    }
}

相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!


相關閱讀:

CSS的編碼怎么轉換

css3點擊顯示漣漪特效

怎樣用canvas做出粒子噴泉動畫的效果

以上就是點擊瀏覽器的返回按鈕,就會刷新歷史頁面這個問題的解決方案的詳細內容,更多請關注php中文網其它相關文章!


網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。




主站蜘蛛池模板: 日本天堂视频 | 婷婷六月激情 | 天堂8中文在线最新版在线 天堂8中文在线bt | 中文字幕婷婷 | 午夜小视频在线播放 | 日韩中文字幕一区二区不卡 | 亚洲国产天堂在线观看 | 婷婷三级 | 婷婷国产 | 色噜噜狠狠在爱丁香 | 亚洲专区路线一路线二天美 | 日本视频免费在线观看 | 亚洲欧美无人区乱码 | 人人爽天天碰天天躁夜夜躁 | 青草视频在线观看免费资源 | 最新69国产成人精品视频69 | 婷婷色在线观看 | 欧美一级纶理片免费 | 天堂a免费视频在线观看 | 天天干天天干天天色 | 色综合久久88色综合天天 | 亚洲九九香蕉 | 日日夜夜影院 | 午夜亚洲精品 | 午夜男人网 | 热热热热色 | 一二三四高清在线手机视频 | 青草国产精品久久久久久久久 | 欧美一级黄色带 | 伊人久久精品成人网 | 四虎影视国产884a精品亚洲 | 日产精品一区二区 | 伊人精品在线 | 日本午夜www高清视频 | 天天色爱| 狍和美女一级aa毛片 | 全免费午夜一级毛片一级毛 | 西瓜影院日韩大片在线观看 | 伊人第一页 | 亚洲欧美一区二区三区二厂 | 日韩精品免费在线观看 |