关于微信“被返回页”在被返回时自动刷新
網(wǎng)上有很多這些文章,但我覺得沒一篇真正解決這個問題,倒是能給人一個解決方案的思路,對,就是posState事件。?
要解決這個問題也不難,使用history的replaceState屬性替換當前網(wǎng)頁鏈接(其實作用是在不增加history長度的基礎(chǔ)上,仍然使用當前網(wǎng)面鏈接不能使用popState,因為它的作用是增加了history的長度,后退時會出錯,往往跳不出循環(huán))。?
完整代碼如下:
?
ps:?
1.popState事件只有在作用go(-1),back(),forward()等操作時才會觸發(fā)。?
2.重點是self.location.reload();,后退后刷新當前頁面。其它人寫的文章里缺少這一塊,弄的我很是郁悶。?
3.微信里在監(jiān)聽到iphone后退事件后會觸發(fā)popState事件,在PopState事件里執(zhí)行:self.location.reload();即可刷新后退后的頁面。
?
?
網(wǎng)站建設過程中,提交頁面后我們經(jīng)常要用到window.history.go(-1)返回上一頁,因為頁面的緩存功能,我們只能返回上次操作的頁面,但在刪除等操作中,我們希望實時看到刪除項目后的頁面,這就要用到同時刷新技術(shù),下面我們總結(jié)總結(jié)一下常用的幾種window.history.go(-1)返回頁面后實時刷新技術(shù)。
返回上一頁代碼:
<a href="Javascript:window.history.go(-1)">返回上一頁</a>?
?
1.強制載入后刷新一次
我們可以仿照C++中解決頭文件重復包含的方法,在C++中利用#ifndef A #define A #endif來解決頭文件的重復包含問題同樣我們采用如下方式
if(window.name != "bencalie"){location.reload();window.name = "bencalie"; } else{window.name = ""; }?
進行載入后強制刷新一次,相信如果你有編程經(jīng)驗一定看的懂的,這里不做解釋!
2.禁止緩存,重新載入一次
在前一頁頭部加上
<meta http-equiv="Expires" CONTENT="0"> <meta http-equiv="Cache-Control" CONTENT="no-cache"> <meta http-equiv="Pragma" CONTENT="no-cache">?
或者
<%Response.Buffer=True Response.ExpiresAbsolute=Now()-1 Response.Expires=0 Response.CacheControl="no-cache" %>?
都可以實現(xiàn)刷新。
?
參考:
https://blog.csdn.net/achenyuan/article/details/77769992
https://blog.csdn.net/bcqtt/article/details/51670461
轉(zhuǎn)載于:https://www.cnblogs.com/eedc/p/9371448.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的关于微信“被返回页”在被返回时自动刷新的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Who Gets the Most Ca
- 下一篇: chrome瀏覽器去掉緩存的方法