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

資訊專欄INFORMATION COLUMN

安卓微信瀏覽器location.reload()刷新無效

jzman / 3110人閱讀

摘要:場景頁面上有一個按鈕,點擊的時候執(zhí)行,正常情況后會向后臺發(fā)出請求,但在安卓的微信瀏覽器中后,通過抓包發(fā)現(xiàn),并沒有發(fā)送請求。假設(shè)原頁面鏈接是,則等于如下在中,處理如下然而經(jīng)抓包測試,只有第一次刷新時有效,再次刷新,安卓微信瀏覽器仍然會緩存。

場景:

頁面上有一個按鈕,點擊的時候執(zhí)行window.location.reload(),正常情況reload()后會向后臺發(fā)出請求,但在安卓的微信瀏覽器中reload后,通過fiddler抓包發(fā)現(xiàn),并沒有發(fā)送請求。應(yīng)該是微信緩存的問題。

解決方法:

最常用的方法,更新時間戳:window.location.href+隨機數(shù)。寫了一個小函數(shù),添加或更新鏈接后的時間戳。這里,第二個參數(shù)表示時間戳的key,不傳參時,默認變量名為“t”。

function updateUrl(url,key){
        var key= (key || "t") +"=";  //默認是"t"
        var reg=new RegExp(key+"d+");  //正則:t=1472286066028
        var timestamp=+new Date();
        if(url.indexOf(key)>-1){ //有時間戳,直接更新
            return url.replace(reg,key+timestamp);
        }else{  //沒有時間戳,加上時間戳
            if(url.indexOf("?")>-1){
                var urlArr=url.split("?");
                if(urlArr[1]){
                    return urlArr[0]+"?"+key+timestamp+"&"+urlArr[1];
                }else{
                    return urlArr[0]+"?"+key+timestamp;
                }
            }else{
                if(url.indexOf("#")>-1){
                    return url.split("#")[0]+"?"+key+timestamp+location.hash;
                }else{
                    return url+"?"+key+timestamp;
                }
            }
        }
    }
調(diào)用
window.location.href=updateUrl(window.location.href); //不傳參,默認是“t”
window.location.href=updateUrl(window.location.href,"v"); //傳入自定義的變量名

親測,有效。如果有更好的寫法,歡迎糾正。

另解

還想過一個方法,這里是針對php的情況,就是將location.href指向一個新的鏈接,在新鏈接中再重定向本頁面。

假設(shè)原頁面鏈接是://xxx.xxx.com/xxx/index?fsid=1001039610100510,則location.href等于如下:

 var url=location.href;
 location.+encodeURIComponent(url);

在PHP中,function update()處理如下:

function again(){
    $url=$this->input->get("curl");
    header("Location: ".$url);
}    

然而經(jīng)fiddler抓包測試,只有第一次刷新時有效,再次刷新,安卓微信瀏覽器仍然會緩存。 所以,還是更改時間戳最有效,這也是解決緩存最常用的方法。

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

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

相關(guān)文章

  • 安卓微信覽器location.reload()刷新無效

    摘要:場景頁面上有一個按鈕,點擊的時候執(zhí)行,正常情況后會向后臺發(fā)出請求,但在安卓的微信瀏覽器中后,通過抓包發(fā)現(xiàn),并沒有發(fā)送請求。假設(shè)原頁面鏈接是,則等于如下在中,處理如下然而經(jīng)抓包測試,只有第一次刷新時有效,再次刷新,安卓微信瀏覽器仍然會緩存。 場景: 頁面上有一個按鈕,點擊的時候執(zhí)行window.location.reload(),正常情況reload()后會向后臺發(fā)出請求,但在安卓的微信...

    Dr_Noooo 評論0 收藏0
  • Ios中微信頁面返回上一頁去除緩存幾種常見思路

    摘要:但在微信頁面中也會保存上一頁面最后執(zhí)行的狀態(tài),不會重新執(zhí)行。原因微信中調(diào)整到下一頁面后并未將上一頁面修改的保持在歷史記錄中,以代碼為例,返回上一頁并未返回到,而是返回到中。 前言 這篇文章主要講解決思路,不對各種概念進行過多講解。 問題描述 開發(fā)微信H5頁面的時候,在Ios微信內(nèi)置瀏覽器中點擊返回按鈕返回上一頁時,上一頁面不會被刷新。在瀏覽器緩存機制中,在返回上一頁的操作中, html...

    ckllj 評論0 收藏0
  • 這些常用的H5代碼你知道嗎

    摘要:返回上一頁第一次在手機端用到返回上一頁的時候,只寫了這一句。但是只在安卓手機有效果,兼容蘋果手機需要在跳轉(zhuǎn)代碼后加上這句。方法阻止元素發(fā)生默認的行為。 1、返回上一頁第一次在手機端用到返回上一頁的時候,只寫了window.history.go(-1);這一句。但是只在安卓手機有效果,兼容蘋果手機需要在跳轉(zhuǎn)代碼后加上return false;這句。跳轉(zhuǎn)后刷新頁面加上self.locati...

    CNZPH 評論0 收藏0
  • 這些常用的H5代碼你知道嗎

    摘要:返回上一頁第一次在手機端用到返回上一頁的時候,只寫了這一句。但是只在安卓手機有效果,兼容蘋果手機需要在跳轉(zhuǎn)代碼后加上這句。方法阻止元素發(fā)生默認的行為。 1、返回上一頁第一次在手機端用到返回上一頁的時候,只寫了window.history.go(-1);這一句。但是只在安卓手機有效果,兼容蘋果手機需要在跳轉(zhuǎn)代碼后加上return false;這句。跳轉(zhuǎn)后刷新頁面加上self.locati...

    gggggggbong 評論0 收藏0

發(fā)表評論

0條評論

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