摘要:場景頁面上有一個按鈕,點擊的時候執(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
摘要:場景頁面上有一個按鈕,點擊的時候執(zhí)行,正常情況后會向后臺發(fā)出請求,但在安卓的微信瀏覽器中后,通過抓包發(fā)現(xiàn),并沒有發(fā)送請求。假設(shè)原頁面鏈接是,則等于如下在中,處理如下然而經(jīng)抓包測試,只有第一次刷新時有效,再次刷新,安卓微信瀏覽器仍然會緩存。 場景: 頁面上有一個按鈕,點擊的時候執(zhí)行window.location.reload(),正常情況reload()后會向后臺發(fā)出請求,但在安卓的微信...
摘要:但在微信頁面中也會保存上一頁面最后執(zhí)行的狀態(tài),不會重新執(zhí)行。原因微信中調(diào)整到下一頁面后并未將上一頁面修改的保持在歷史記錄中,以代碼為例,返回上一頁并未返回到,而是返回到中。 前言 這篇文章主要講解決思路,不對各種概念進行過多講解。 問題描述 開發(fā)微信H5頁面的時候,在Ios微信內(nèi)置瀏覽器中點擊返回按鈕返回上一頁時,上一頁面不會被刷新。在瀏覽器緩存機制中,在返回上一頁的操作中, html...
摘要:返回上一頁第一次在手機端用到返回上一頁的時候,只寫了這一句。但是只在安卓手機有效果,兼容蘋果手機需要在跳轉(zhuǎn)代碼后加上這句。方法阻止元素發(fā)生默認的行為。 1、返回上一頁第一次在手機端用到返回上一頁的時候,只寫了window.history.go(-1);這一句。但是只在安卓手機有效果,兼容蘋果手機需要在跳轉(zhuǎn)代碼后加上return false;這句。跳轉(zhuǎn)后刷新頁面加上self.locati...
摘要:返回上一頁第一次在手機端用到返回上一頁的時候,只寫了這一句。但是只在安卓手機有效果,兼容蘋果手機需要在跳轉(zhuǎn)代碼后加上這句。方法阻止元素發(fā)生默認的行為。 1、返回上一頁第一次在手機端用到返回上一頁的時候,只寫了window.history.go(-1);這一句。但是只在安卓手機有效果,兼容蘋果手機需要在跳轉(zhuǎn)代碼后加上return false;這句。跳轉(zhuǎn)后刷新頁面加上self.locati...
閱讀 2877·2021-11-16 11:55
閱讀 2628·2021-09-29 09:34
閱讀 3446·2021-09-01 14:21
閱讀 3781·2019-08-29 12:36
閱讀 706·2019-08-26 10:55
閱讀 3997·2019-08-26 10:20
閱讀 1039·2019-08-23 18:19
閱讀 1205·2019-08-23 17:56