1. 程式人生 > >關於瀏覽器回退默認行為的研究 回退保存頁面狀態

關於瀏覽器回退默認行為的研究 回退保存頁面狀態

回退 記錄 了解 結果 翻頁 沒有 tor cal als

緣起:最近在研究 移動端的頁面研發工作,由於之前從來沒有專業開發過移動端頁面,所以在開發過程中,可以說是處處有精彩,處處有收獲.最讓我意外的是,瀏覽器頁面回退問題 就是個頭疼的問題.

需求:我們的需求是,在a頁面,打開b頁面,之後b再回退到a頁面,a頁面仍然能保持 a剛剛打開b頁面時的狀態.

分析過程:最開始接到這個需求,覺得這也不是啥大需求啊,瀏覽器默認行為,就能支持吧,經過測試後,發現有的瀏覽器支持,有的不支持。有的頁面支持,有的頁面不支持,可以說,比較懵,最後決定,先分析一些基本的瀏覽器知識,之後再思考.

分析結果:
經過了長時間的分析後,對瀏覽器行為有了一個較深的了解,經驗如下:

一.瀏覽器會記住頁面滾動條位置的行為:

1.a頁面為靜態資源頁面,當a打開b頁面時,頁面會記錄滾動條位置.
2.a頁面使用ajax請求數據,切ajax是同步請求,且頁面其他ajax請求都遵循此規則時生效.
只要記住這兩個規則,在開發時就會有一個清晰的思路.

二.解決方案總結:
1.可以使用單頁應用的模式,進行開發,原理是 hash 路由. #
2.可以借用localstorage緩存,在a頁面打開b時,記錄頁面元素位置,及頁面元素,之後在回退時,直接從緩存中讀數據.
3.可以借助 瀏覽器記住頁面狀態行為來解決.直接輸出靜態頁面,優點時,無需控制行為,無需寫多余的業務,去控制頁面的行為.

我采用的方式是,頁面借助 c# mvc razor技術,靜態輸出,之後用點擊下一頁,因為ajax不太好控制,翻頁.分析了許多大廠的頁面,也沒太研究透,只是看他們都是靜態頁面輸出。如果大家有更好的方式,可以評論哦,共同進步,互相學習.

關於瀏覽器回退默認行為的研究 回退保存頁面狀態