1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      HTML5中HistoryAPI如何實(shí)現(xiàn)無刷新跳轉(zhuǎn)

      這篇文章將為大家詳細(xì)講解有關(guān)HTML5中History API如何實(shí)現(xiàn)無刷新跳轉(zhuǎn) ,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

      創(chuàng)新互聯(lián)建站主營武進(jìn)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,武進(jìn)h5重慶小程序開發(fā)公司搭建,武進(jìn)網(wǎng)站營銷推廣歡迎武進(jìn)等地區(qū)企業(yè)咨詢

      有一次在上**網(wǎng)的時(shí)候,發(fā)現(xiàn)登陸、注冊動(dòng)畫效果非常華麗,但讓我感到震驚的是頁面竟能夠?qū)崿F(xiàn)無刷新跳轉(zhuǎn)(已改版,觀看此效果可以猛擊此處:GitHub或閱FM),回顧了所學(xué)的前端知識(shí),似乎沒有任何技術(shù)可以實(shí)現(xiàn)這一點(diǎn),于是百度了一下,才發(fā)現(xiàn)這原來是使用HTML5中History API實(shí)現(xiàn)的效果,但奈何一直未曾派上用場。直到博客改版時(shí),才將這一技術(shù)應(yīng)用起來。
      在HTML5中,
      1. 新增了通過JS在瀏覽器歷史記錄中添加項(xiàng)目的功能。
      2. 在不刷新頁面的前提下顯示改變?yōu)g覽器地址欄中的URL。
      3. 添加了當(dāng)用戶單擊瀏覽器的后退按鈕時(shí)觸發(fā)的事件。
      通過以上三點(diǎn),可以實(shí)現(xiàn)在不刷新頁面的前提下動(dòng)態(tài)改變?yōu)g覽器地址欄中的URL,動(dòng)態(tài)顯示頁面內(nèi)容。
      比如: 當(dāng)頁面A和頁面B內(nèi)容不一樣的時(shí)候,在HTML5之前,如果從頁面A切換到頁面B時(shí),需要在瀏覽器下從頁面A切換到頁面B,或者說,如果需要有后退按鈕功 能的話,可以在URL地址加#XXXX 可以實(shí)現(xiàn)后退功能。那么現(xiàn)在在HTML5中,可以通過History API實(shí)現(xiàn)如下處理即可:
      1. 在A頁面 通過發(fā)AJAX請求 請求頁面中的B數(shù)據(jù)。
      2. 在頁面A中通過JS裝載相應(yīng)的信息到相應(yīng)的位置來。
      3. 通過History API在不刷新頁面的情況下在瀏覽器的地址欄中從頁面A的URL地址切換到頁面B的URL地址。
      HTML4中的History API
      屬性
      1.length 歷史的項(xiàng)數(shù)。javascript 所能管到的歷史被限制在用瀏覽器的“前進(jìn)”“后退”鍵可以去到的范圍。本屬性返回的是“前進(jìn)”和“后退”兩個(gè)按鍵之下包含的地址數(shù)的和。
      方法
      1.back() 后退,跟按下“后退”鍵是等效的。
      2.forward() 前進(jìn),跟按下“前進(jìn)”鍵是等效的。
      3.go() 用法:history.go(x);在歷史的范圍內(nèi)去到指定的一個(gè)地址。如果 x < 0,則后退 x 個(gè)地址,如果 x > 0,則前進(jìn) x 個(gè)地址,如果 x == 0,則刷新現(xiàn)在打開的網(wǎng)頁。history.go(0) 跟 location.reload() 是等效的。
      HTML5中的History API
      1. history.pushState(data, title [, url]):往歷史記錄堆棧頂部添加一條記錄;data會(huì)在onpopstate事件觸發(fā)時(shí)作為參數(shù)傳遞過去;title為頁面標(biāo)題,當(dāng)前所有瀏覽器都會(huì) 忽略此參數(shù);url為頁面地址,可選,缺省為當(dāng)前頁地址。
      2. history.replaceState(data, title [, url]) :更改當(dāng)前的歷史記錄,參數(shù)同上。
      3. history.state:用于存儲(chǔ)以上方法的data數(shù)據(jù),不同瀏覽器的讀寫權(quán)限不一樣。
      4. popstate事件:當(dāng)用戶單擊瀏覽器的后退或者前進(jìn)按鈕時(shí)觸發(fā)該事件。在事件處理函數(shù)中讀取觸發(fā)事件的事件對(duì)象的state屬性值,該屬性值即為執(zhí)行pushState方法時(shí)所使用的第一個(gè)參數(shù)值,其中保存了在向?yàn)g覽器歷史記錄中添加記錄同步保存的對(duì)象。
      到目前為止,IE10,firefox4以上的版本,Chrome8以上的版本,Safari5,Opera11以上的版本瀏覽器支持HTML5中的History API。
      HTML:

      代碼如下:

       
       
       
       New Document  
       
       
       
       
       
       
       
      
    2.   測試 
    3.  
    4.   測試 
    5.  
    6.   測試 
    7.        
    8.  
    9.  
    10.    
       
         

      JS:

      代碼如下:

      /** 
      * HTML history and ajax 
      */ 
      $(function(){ 
      var ajax, 
      currentState; 
      $('.container li').unbind().bind('click',function(e){ 
      e.preventDefault(); 
      var target = e.target, 
      url = $(target).attr('href'); 
      !$(this).hasClass('current') && $(this).addClass('current').siblings().removeClass("current"); 
      if(ajax == undefined) { 
      currentState = { 
      url: document.location.href, 
      title: document.title, 
      html: $('.content').html() 
      }; 
      } 
      ajax = $.ajax({ 
      type:'POST', 
      url: url, 
      dataType:'json', 
      success: function(data){ 
      var html = ''; 
      if(data.length > ) { 
      for(var i = , ilist = data.length; i < ilist; i++) { 
      html += '
    11. ' +data[i].age+ '
    12. ' +  '
    13. ' +data[i].name+ '
    14. ' +  '
    15. ' +data[i].sex+ '
    16. ';  }  $('.content').html(html);  }  var state = {  url: url,  title: document.title,  html: $('.content').html()  };  history.pushState(state,null,url);  }  });  });  window.addEventListener('popstate',function(event){  if(ajax == null){  return;  }else if(event && event.state){  document.title = event.state.title;  $('.content').html(event.state.html);  }else{  document.title = currentState.title;  $('.content').html(currentState.html);  }  });  });

      關(guān)于“HTML5中History API如何實(shí)現(xiàn)無刷新跳轉(zhuǎn) ”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。


      網(wǎng)站標(biāo)題:HTML5中HistoryAPI如何實(shí)現(xiàn)無刷新跳轉(zhuǎn)
      網(wǎng)頁鏈接:http://www.ef60e0e.cn/article/gsegsh.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        阿拉善左旗| 杭州市| 外汇| 富平县| 长子县| 晋江市| 习水县| 鄂州市| 都安| 松溪县| 隆子县| 台北县| 河西区| 高淳县| 西华县| 洪雅县| 德格县| 共和县| 聊城市| 安远县| 乌拉特后旗| 芒康县| 梅州市| 客服| 靖宇县| 通城县| 南投市| 哈巴河县| 金堂县| 铜陵市| 浦县| 宁津县| 繁峙县| 报价| 乐山市| 大厂| 顺义区| 旌德县| 永泰县| 沛县| 泰兴市|