色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

十分鐘內(nèi)學(xué)會:控制瀏覽器是否緩存網(wǎng)頁狀態(tài)

  Question

  在Firefox等瀏覽器中,如果你打開一個頁面并進行若干操作,例如在文本框進行輸入,甚至點擊按鈕進行Ajax操作更新頁面局部,這些操作的結(jié)果都會被緩存下來。在你點擊鏈接離開這個頁面后,如果你通過后退按鈕回到這個頁面,你會發(fā)現(xiàn)它仍出于你離開時的狀態(tài),而非頁面剛剛加載好后的初始狀態(tài)。在一些情況下,這樣的緩存方式是符合我們預(yù)期的;但在另外一些情況下,我們更希望頁面恢復(fù)到初始狀態(tài),或者說讓頁面從零開始重新加載一邊。我們?nèi)绾尾拍茏尀g覽器尊重我們的選擇呢?

  Answer

  如果你只是希望頁面不緩存加載后的變更,后退就恢復(fù)到最初加載的狀態(tài),你只需要一個空白的unload事件就可以了:

  window.onunload = function(){};

  其中的原理是,F(xiàn)irefox等瀏覽器會嘗試通過“掛起(suspend)”的方式來緩存頁面,使得后退能夠恢復(fù)到頁面之前被掛起那一刻的狀態(tài)。然而如果unload事件有處理函數(shù),瀏覽器就認為你可能已經(jīng)對頁面進行了析構(gòu)處理,這時候頁面已經(jīng)不可能回到正常的交互狀態(tài),也就不能以掛起的方式來緩存頁面。

  如果我們希望允許瀏覽器掛起頁面,同時又需要知道何時被掛起何時被恢復(fù),那該怎么辦呢?我們可以用window對象上的pageshow和pagehide事件。當頁面被掛起并隱藏時,pagehide事件會被觸發(fā);當頁面被恢復(fù)到掛起前狀態(tài)并顯示出來時,pageshow事件會被觸發(fā)。Firefox從1.5開始就支持這兩個事件,Safari最新的nightly build也支持這兩個事件。

it知識庫十分鐘內(nèi)學(xué)會:控制瀏覽器是否緩存網(wǎng)頁狀態(tài),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 伊通| 惠来县| 通化市| 阜康市| 南平市| 南川市| 福安市| 邳州市| 通渭县| 汝城县| 昌黎县| 延川县| 岳阳县| 平陆县| 龙泉市| 华宁县| 双牌县| 泰州市| 六枝特区| 琼结县| 扬中市| 蒙山县| 越西县| 桃园县| 阿拉善盟| 阜南县| 晋城| 北海市| 长沙市| 滨海县| 牙克石市| 巴林右旗| 江都市| 清原| 竹溪县| 邮箱| 休宁县| 天峨县| 峡江县| 东兴市| 永城市|