您好,登錄后才能下訂單哦!
緣起:最近在研究 移動端的頁面研發工作,由于之前從來沒有專業開發過移動端頁面,所以在開發過程中,可以說是處處有精彩,處處有收獲.最讓我意外的是,瀏覽器頁面回退問題 就是個頭疼的問題.
需求:我們的需求是,在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不太好控制,翻頁.分析了許多大廠的頁面,也沒太研究透,只是看他們都是靜態頁面輸出。如果大家有更好的方式,可以評論哦,共同進步,互相學習.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。