摘要:場景頁面上有一個按鈕,點擊的時候執行,正常情況后會向后臺發出請求,但在安卓的微信瀏覽器中后,通過抓包發現,并沒有發送請求。假設原頁面鏈接是,則等于如下在中,處理如下然而經抓包測試,只有第一次刷新時有效,再次刷新,安卓微信瀏覽器仍然會緩存。
場景:
頁面上有一個按鈕,點擊的時候執行window.location.reload(),正常情況reload()后會向后臺發出請求,但在安卓的微信瀏覽器中reload后,通過fiddler抓包發現,并沒有發送請求。應該是微信緩存的問題。
解決方法:最常用的方法,更新時間戳:window.location.href+隨機數。寫了一個小函數,添加或更新鏈接后的時間戳。這里,第二個參數表示時間戳的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; } } } }調用
window.location.href=updateUrl(window.location.href); //不傳參,默認是“t” window.location.href=updateUrl(window.location.href,"v"); //傳入自定義的變量名
親測,有效。如果有更好的寫法,歡迎糾正。
另解還想過一個方法,這里是針對php的情況,就是將location.href指向一個新的鏈接,在新鏈接中再重定向本頁面。
假設原頁面鏈接是://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); }
然而經fiddler抓包測試,只有第一次刷新時有效,再次刷新,安卓微信瀏覽器仍然會緩存。 所以,還是更改時間戳最有效,這也是解決緩存最常用的方法。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30390.html
摘要:場景頁面上有一個按鈕,點擊的時候執行,正常情況后會向后臺發出請求,但在安卓的微信瀏覽器中后,通過抓包發現,并沒有發送請求。假設原頁面鏈接是,則等于如下在中,處理如下然而經抓包測試,只有第一次刷新時有效,再次刷新,安卓微信瀏覽器仍然會緩存。 場景: 頁面上有一個按鈕,點擊的時候執行window.location.reload(),正常情況reload()后會向后臺發出請求,但在安卓的微信...
摘要:但在微信頁面中也會保存上一頁面最后執行的狀態,不會重新執行。原因微信中調整到下一頁面后并未將上一頁面修改的保持在歷史記錄中,以代碼為例,返回上一頁并未返回到,而是返回到中。 前言 這篇文章主要講解決思路,不對各種概念進行過多講解。 問題描述 開發微信H5頁面的時候,在Ios微信內置瀏覽器中點擊返回按鈕返回上一頁時,上一頁面不會被刷新。在瀏覽器緩存機制中,在返回上一頁的操作中, html...
摘要:返回上一頁第一次在手機端用到返回上一頁的時候,只寫了這一句。但是只在安卓手機有效果,兼容蘋果手機需要在跳轉代碼后加上這句。方法阻止元素發生默認的行為。 1、返回上一頁第一次在手機端用到返回上一頁的時候,只寫了window.history.go(-1);這一句。但是只在安卓手機有效果,兼容蘋果手機需要在跳轉代碼后加上return false;這句。跳轉后刷新頁面加上self.locati...
摘要:返回上一頁第一次在手機端用到返回上一頁的時候,只寫了這一句。但是只在安卓手機有效果,兼容蘋果手機需要在跳轉代碼后加上這句。方法阻止元素發生默認的行為。 1、返回上一頁第一次在手機端用到返回上一頁的時候,只寫了window.history.go(-1);這一句。但是只在安卓手機有效果,兼容蘋果手機需要在跳轉代碼后加上return false;這句。跳轉后刷新頁面加上self.locati...
閱讀 2866·2021-11-16 11:55
閱讀 2608·2021-09-29 09:34
閱讀 3405·2021-09-01 14:21
閱讀 3753·2019-08-29 12:36
閱讀 697·2019-08-26 10:55
閱讀 3959·2019-08-26 10:20
閱讀 1026·2019-08-23 18:19
閱讀 1194·2019-08-23 17:56