亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

Dr_Noooo / 2756人閱讀

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

場(chǎng)景:

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

解決方法:

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

function updateUrl(url,key){
        var key= (key || "t") +"=";  //默認(rèn)是"t"
        var reg=new RegExp(key+"d+");  //正則:t=1472286066028
        var timestamp=+new Date();
        if(url.indexOf(key)>-1){ //有時(shí)間戳,直接更新
            return url.replace(reg,key+timestamp);
        }else{  //沒有時(shí)間戳,加上時(shí)間戳
            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); //不傳參,默認(rèn)是“t”
window.location.href=updateUrl(window.location.href,"v"); //傳入自定義的變量名

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

另解

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

假設(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抓包測(cè)試,只有第一次刷新時(shí)有效,再次刷新,安卓微信瀏覽器仍然會(huì)緩存。 所以,還是更改時(shí)間戳最有效,這也是解決緩存最常用的方法。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/80236.html

相關(guān)文章

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

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

    jzman 評(píng)論0 收藏0
  • Ios中微信頁面返回上一頁去除緩存幾種常見思路

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

    ckllj 評(píng)論0 收藏0
  • 這些常用的H5代碼你知道嗎

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

    CNZPH 評(píng)論0 收藏0
  • 這些常用的H5代碼你知道嗎

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

    gggggggbong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Dr_Noooo

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<