使用Ajax和history.pushState()實現無重新整理改變頁面內容和位址列Url
先說些廢話,就當放鬆下心情了。最近幾天實在覺著累,不過不是身體累,是心累。總感覺心情很壓抑,具體為什麼,我一時也說不上來,就是每個人都會偶爾上來一陣神經病。前段時間真是熱的要死,搞得我每天都悶悶的,一點動力都沒有,不過還好啦,又下雨了,重點是遇到下雨天,溫度就能降好幾度,你說我能不開心嗎? 好啦好啦 ,不說這個了,步入正題吧,努力一點,未來就會比現在好一點。
強大的Ajax通過非同步請求實現了頁面的區域性重新整理,帶來了更好的使用者體驗,但頭疼的是,它不能在瀏覽器的歷史會話中保留記錄,也無法改變頁面在瀏覽器中Url地址,不能點選瀏覽器的前進、後退按鈕。就是當你開啟一個頁面,使用ajax進行各種資料載入,例如一個列表頁面,非同步載入來翻頁。結果使用者一不小心重新整理了頁面,那麼頁碼就得重新開始計算,一旦使用者改變了會話狀態(瀏覽器的前進、後退、重新整理),那麼ajax就會丟失相關的資料。
後來H5引入了新的API,就是history.pushState和history.replaceState很好的解決掉了Ajax存在的這個缺陷。自己嘗試寫了個例子,頁面中左側顯示文章目錄,右側顯示具體的某一篇文章內容。通過ajax請求實現頁面區域性重新整理,同時改變url地址,並將當前狀態儲存為歷史記錄。就是下面的效果啦,內容是隨便copy的。
這個例子總共涉及到兩部分,就是目錄和文章內容。通過點選左側目錄,右側的內容便隨之改變,當然,位址列也要變,還要可以點選回退和前進按鈕,回到之前或之後的狀態頁面。下面開始貼程式碼:
1.Html頁面結構及樣式
A)Directory.html(顯示目錄列表及右側文章內容)
B)article01.html(小溪邊的童年)
C)article02.html(一個人過春節)
D)article03.html(你的未來是什麼樣子)
文件結構寫完了,那怎麼在Directory.html裡怎麼能顯示article01.html、article02.html、article03.html的內容呢,這裡就用到ajax請求獲取article裡面的內容了。
哈哈,看前方高能。
2.javascript程式碼實現(ajax+history.pushState)
相關文章
- 使用ajax實現頁面區域性重新整理
- Ajax 實現無重新整理分頁
- 如何使用angularjs實現抓取頁面內容AngularJS
- jQuery 使用ajax,並重新整理頁面jQuery
- 頁面無重新整理切換實現
- jquery實現改變所匹配的內容jQuery
- Js 和Url預設位址列編碼等處理JS
- 使用 JavaScript 修改瀏覽器 URL 位址列JavaScript瀏覽器
- 為何頁面內容和網頁邊緣有空隙網頁
- js實現父頁面獲取iframe子頁面內容程式碼JS
- PHPAjax實現頁面無重新整理發表評論PHP
- Ajax區域性頁面重新整理和History API結合的陷阱API
- 怎麼實現,重定向,但是位址列不變?
- 《前端實戰總結》如何在不重新整理頁面的情況下改變URL前端
- 【easyui】開啟的tab頁同頁面引數不同頁面內容不重新整理UI
- Vue獲取位址列引數並做改變Vue
- HTML API + CSS 控制頁面列印內容和樣式HTMLAPICSS
- 前端利用ajax實現使用者註冊頁面前端
- 使用jQuery和YQL,以Ajax方式載入外部內容jQuery
- 實現頁面載入的變換和位移動畫效果動畫
- 獲取位址列url連結?後面傳遞的引數
- ajax實現頁面非同步載入非同步
- javascript頁面重新整理和跳轉JavaScript
- 在VUE中改變陣列、物件。頁面沒有變化Vue陣列物件
- html網頁內容如何實現上標和下標效果HTML網頁
- Ionic2系列——使用DeepLinker實現指定頁面URL
- 現版本小程式暫時無法監聽webview頁面高度改變WebView
- 使用LayUI實現AJAX分頁UI
- MVC左邊導航,左邊內容變,通過AJAX方法實現MVC
- 使用CInternetSession和CHttpFile讀取網頁內容SessionHTTP網頁
- UIWebView簡單的獲取HTML內容和修改頁面資訊UIWebViewHTML
- VueRouter改變頁面標題Vue
- Winterberry Group:AI如何改變影片和內容製作報告AI
- 文章內容分頁功能實現
- PbootCMS判斷列表頁有無內容,無內容返回提示各種條件判斷和標籤boot
- Ajax的技術核心實現動態無重新整理
- 分頁實現前五後五ajax區域性重新整理方式分頁實現
- 從瀏覽器位址列輸入url到顯示頁面的步驟瀏覽器