<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        使用ajax和history.pushState無刷新改變頁面URL示例

        來源:懂視網 責編:小采 時間:2020-11-27 22:52:11
        文檔

        使用ajax和history.pushState無刷新改變頁面URL示例

        使用ajax和history.pushState無刷新改變頁面URL示例:表現 如果你使用chrome或者firefox等瀏覽器訪問本博客、github.com、plus.google.com等網站時,細心的你會發現頁面之間的點擊是通過ajax異步請求的,同時頁面的URL發生了了改變。并且能夠很好的支持瀏覽器前進和后退。 是什么有這么強大的功能呢? HTML
        推薦度:
        導讀使用ajax和history.pushState無刷新改變頁面URL示例:表現 如果你使用chrome或者firefox等瀏覽器訪問本博客、github.com、plus.google.com等網站時,細心的你會發現頁面之間的點擊是通過ajax異步請求的,同時頁面的URL發生了了改變。并且能夠很好的支持瀏覽器前進和后退。 是什么有這么強大的功能呢? HTML

        表現

        如果你使用chrome或者firefox等瀏覽器訪問本博客、github.com、plus.google.com等網站時,細心的你會發現頁面之間的點擊是通過ajax異步請求的,同時頁面的URL發生了了改變。并且能夠很好的支持瀏覽器前進和后退。

        是什么有這么強大的功能呢?

        HTML5里引用了新的API,history.pushState和history.replaceState,就是通過這個接口做到無刷新改變頁面URL的。

        與傳統的AJAX的區別

        傳統的ajax有如下的問題:

        1、可以無刷新改變頁面內容,但無法改變頁面URL

        2、為了更好的可訪問性,內容發生改變后,通常改變URL的hash

        3、hash的方式不能很好的處理瀏覽器的前進、后退等問題!

        4、進而瀏覽器引入了onhashchange的接口,不支持的瀏覽器只能定時去判斷hash是否改變

        5、但這種方式對搜索引擎很不友好

        6、twitter和google約定了使用#!xxx(即hash第一個字符為!),搜索引擎進行支持。

        為了解決傳統ajax帶來的問題,HTML5里引入了新的API,即:history.pushState, history.replaceState

        可以通過pushState和replaceState接口操作瀏覽器歷史,并且改變當前頁面的URL。

        pushState是將指定的URL添加到瀏覽器歷史里,replaceState是將指定的URL替換當前的URL。

        如何使用

        代碼如下:
        <strong style="border-color: initial; border-width: 0px; padding: 0px; margin: 0px;">var state = {
        title: title,
        url: options.url,
        otherkey: othervalue
        };
        window.history.pushState(state, document.title, url);</strong>

        state對象除了要title和url之外,你也可以添加其他的數據,比如:還想將一些發送ajax的配置給保存起來。

        replaceState和pushState是相似的,這里就不多介紹了。
        如何響應瀏覽器的前進、后退操作

        window對象上提供了onpopstate事件,上面傳遞的state對象會成為event的子對象,這樣就可以拿到存儲的title和URL了。

        代碼如下:
        window.addEventListener('popstate', function(e){
        if (history.state){
        var state = e.state;
        //do something(state.url, state.title);
        }
        }, false);

        這樣就可以結合ajax和pushState完美的進行無刷新瀏覽了。
        一些限制

        1、傳遞的URL必須是同域下的,無法跨域

        2、state對象雖然可以存儲很多自定義的屬性,但對于不可序列化的對象則不能存儲,如:DOM對象。
        對應后端的一些處理

        這種模式下除了當前使用ajax可以無刷新瀏覽外,還要保證直接請求改變的URL后也可以正常瀏覽,所以后端要對這些處理下。

        1、對使用pushState的ajax發送一個特殊的頭,如: setRequestHeader(‘PJAX', ‘true')。

        2、后端獲取到有PJAX=true的header時,將頁面中通用的部分都不輸出。比如:PHP可以通過下面的判斷

        代碼如下:
        function is_pjax(){
        return array_key_exists('HTTP_X_PJAX', $_SERVER) && $_SERVER['HTTP_X_PJAX'] === 'true';
        }

        雖然接口上只有pushState、replaceState、onpopstate,但在使用的時候需要做很多的處理。

        針對這個已經寫好了一個基于jquery的插件,接下來的文章會詳細介紹如何使用pjax(ajax+pushState)進行無刷新改變URL瀏覽。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        使用ajax和history.pushState無刷新改變頁面URL示例

        使用ajax和history.pushState無刷新改變頁面URL示例:表現 如果你使用chrome或者firefox等瀏覽器訪問本博客、github.com、plus.google.com等網站時,細心的你會發現頁面之間的點擊是通過ajax異步請求的,同時頁面的URL發生了了改變。并且能夠很好的支持瀏覽器前進和后退。 是什么有這么強大的功能呢? HTML
        推薦度:
        標簽: 示例 url ajax
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 精品亚洲永久免费精品| 亚洲av无码有乱码在线观看| selaoban在线视频免费精品| 国产精品无码素人福利免费| 亚洲精品无码久久久久APP | 久久精品免费一区二区| 久久亚洲sm情趣捆绑调教| 最近中文字幕免费2019| 亚洲不卡在线观看| 午夜免费福利影院| 国产精品日本亚洲777| 亚洲成a人片在线观看日本麻豆| 亚洲av无码专区首页| 亚洲日韩在线中文字幕第一页| 人妻18毛片a级毛片免费看| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 亚洲国产成人综合| 日韩免费一区二区三区在线播放| 久久亚洲伊人中字综合精品| 2021国内精品久久久久精免费| 亚洲国产成人久久99精品| 成人免费视频小说| 一级毛片大全免费播放| 久久精品国产亚洲av成人| 四虎在线免费视频| 深夜A级毛片视频免费| 国产日韩亚洲大尺度高清| 国产精品成人免费福利| 免费人成网上在线观看| 亚洲高清在线播放| 国产黄色片在线免费观看| 手机看片国产免费永久| 亚洲人成综合在线播放| 亚洲国产精品成人网址天堂| 国产成人一区二区三区视频免费| 国产精品高清视亚洲精品| 国产亚洲精品久久久久秋霞 | 日本特黄特色免费大片| a毛片免费播放全部完整| 亚洲一区在线视频| 国产精品亚洲综合专区片高清久久久|