成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

頁面跳轉(zhuǎn)與瀏覽器記錄

learn_shifeng / 1036人閱讀

摘要:所以再做頁面跳轉(zhuǎn)的時候如果不想留下記錄,還是用比較保險,如果想留下記錄,應(yīng)該幾百毫秒再跳轉(zhuǎn)。解決辦法先用給瀏覽器添加一條記錄,然后用的方法替換掉添加的記錄,這樣記錄里存的就是和解決方案

location.href = url location.reload() location.replace(url)
url完全不變的情況下 刷新Docment,不會產(chǎn)生記錄 刷新Docment,不會產(chǎn)生記錄 刷新Docment,不會產(chǎn)生記錄
只改變hash 不會刷新Docment,會在瀏覽器產(chǎn)生記錄,但是如果連續(xù)改變hash,也會丟失記錄 是 不刷新Docment 也不產(chǎn)生記錄
改變url,只hash不算,hash從有到無算 刷新Document,會產(chǎn)生記錄,但是如果頁面加載時執(zhí)行不會產(chǎn)生記錄,setTimeout里面執(zhí)行就會有記錄 刷新Document,不會產(chǎn)生記錄
問題1:

在頁面加載的時候直接location.href 到其他的頁面,會在瀏覽器里不留下當前頁面的記錄,
試驗用 setTimeout 0秒后再location.href 到其他的頁面則會留下記錄。
所以再做頁面跳轉(zhuǎn)的時候如果不想留下記錄,還是用replace比較保險,如果想留下記錄,應(yīng)該setTimeout幾百毫秒再跳轉(zhuǎn)。

問題2:

通過瀏覽器的前進和后退到頁面,頁面的Document會從緩存中取,js重新執(zhí)行。所以如果頁面的數(shù)據(jù)是從模板中下發(fā)的,
會導致回退回來的時候頁面的模板數(shù)據(jù)不會刷新。
解決方案

var url = window.location.href;  
var ps = url.split("#");  
    try{  
        if(ps[1] != 1){  
            url += "#1";  
        }else{  
         //當訪問頁面的時候是有hash =1 證明是從別的url中過來的,所以replace成沒有hash的url(這里就會刷新Document)
          window.location.replace(ps[0]);  
          return;
        }  
    }catch(ex){  
        url += "#1";  
    }       
   //頁面第一次進來的時候,沒有hash = 1,用replace加上hash,這樣在跳轉(zhuǎn)到其他頁面再返回來的時候是帶著hash
    window.location.replace(url);
問題3:

頁面中當連續(xù)改變hash的時候,也會導致瀏覽器的歷史記錄會有丟失,所以快速切換hash也有問題。
但是有的需求是當進入頁面的時候需要立刻變成hash2,然后可以點擊返回到hash1,
如果從頁面中直接從hash1變成hash2會發(fā)現(xiàn)hash1的記錄消失。
解決辦法 先用history.pushState 給瀏覽器添加一條記錄,然后用replace (hash2)的方法替換掉添加的記錄,這樣記錄里存的就是hash1和hash2
解決方案

history.pushState({},document.title, "#/order")
this.$router.replace({
      name: "Edit"
})

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/85165.html

相關(guān)文章

  • 【Amaple教程】2. 模塊

    摘要:模塊更新時部分不需被替換的模塊,檢測到或參數(shù)變化增加移除或修改參數(shù)時觸發(fā),如所有頁面的部分總是不變,此時它將不會被替換。模塊函數(shù)將在模板指令與狀態(tài)數(shù)據(jù)中講解繼續(xù)學習下一節(jié)教程模板指令與狀態(tài)數(shù)據(jù)也可回顧上一節(jié)教程啟動路由 正如它的名字,模塊用于amaplejs單頁應(yīng)用的頁面分割,所有的跳轉(zhuǎn)更新和代碼編寫都是以模塊為單位的。 定義一個模塊 一個模塊由標簽對包含,內(nèi)部分為template模板...

    weizx 評論0 收藏0
  • 【Amaple教程】2. 模塊

    摘要:模塊更新時部分不需被替換的模塊,檢測到或參數(shù)變化增加移除或修改參數(shù)時觸發(fā),如所有頁面的部分總是不變,此時它將不會被替換。模塊函數(shù)將在模板指令與狀態(tài)數(shù)據(jù)中講解繼續(xù)學習下一節(jié)教程模板指令與狀態(tài)數(shù)據(jù)也可回顧上一節(jié)教程啟動路由 正如它的名字,模塊用于amaplejs單頁應(yīng)用的頁面分割,所有的跳轉(zhuǎn)更新和代碼編寫都是以模塊為單位的。 定義一個模塊 一個模塊由標簽對包含,內(nèi)部分為template模板...

    付倫 評論0 收藏0
  • 【Amaple教程】2. 模塊

    摘要:模塊更新時部分不需被替換的模塊,檢測到或參數(shù)變化增加移除或修改參數(shù)時觸發(fā),如所有頁面的部分總是不變,此時它將不會被替換。模塊函數(shù)將在模板指令與狀態(tài)數(shù)據(jù)中講解繼續(xù)學習下一節(jié)教程模板指令與狀態(tài)數(shù)據(jù)也可回顧上一節(jié)教程啟動路由 正如它的名字,模塊用于amaplejs單頁應(yīng)用的頁面分割,所有的跳轉(zhuǎn)更新和代碼編寫都是以模塊為單位的。 定義一個模塊 一個模塊由標簽對包含,內(nèi)部分為template模板...

    OBKoro1 評論0 收藏0
  • 微信小程序mpvue框架總結(jié)

    摘要:原理架構(gòu)作為與之間相互通信的橋梁部分在環(huán)境中注入的實現(xiàn)代碼,包含了協(xié)議的拼裝發(fā)送參數(shù)池回調(diào)池等一些基礎(chǔ)功能。部分在客戶端中的功能映射代碼,實現(xiàn)了攔截與解析環(huán)境信息的注入通用功能映射等功能。 原理架構(gòu) JSBridge 作為native 與 JS 之間相互通信的橋梁JS部分(bridge): 在JS環(huán)境中注入 bridge 的實現(xiàn)代碼,包含了協(xié)議的拼裝/發(fā)送/參數(shù)池/回調(diào)池等一些基礎(chǔ)功能...

    microelec 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<