校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 深入探究HTML5的History API

深入探究HTML5的History API

熱門標簽:邢臺縣地圖標注app 外呼線穩定線路 南通數據外呼系統推廣 阜陽企業外呼系統 外呼系統電話怎么投訴 申請400電話流程簡介 呼和浩特外呼電銷系統排名 pageadm實現地圖標注 地圖標注位置能賺錢嗎

History是有趣的,不是嗎?在之前的HTML版本中,我們對瀏覽歷史記錄的操作非常有限。我們可以來回使用可以使用的方法,但這就是一切我們能做的了。

  但是,利用HTML 5的History API,我們可以更好的控制瀏覽器的歷史記錄了。例如:我們可以添加一條記錄到歷史記錄的列表中,或者在沒有刷新時,可以更新地址欄的URL。
  為什么介紹History API ?

  在這篇文章中,我們將了解HTML 5中History API的來源。在此之前,我們經常使用散列值來改變頁面內容,特別是那些對頁面特別重要的內容。因為沒有刷新,所以對于單頁面應用,改變其URL是不可能的。此外,當你改變URL的散列值值,它對瀏覽器的歷史記錄沒有任何影響。

  然后,現在對于HTML 5的History API來說,這些都是可以輕易實現的,但是由于單頁面應用沒必要使用散列值,它可能需要額外的開發腳本。它也允許我們用一種對SEO友好的方式建立新應用。此外,它能減少帶寬,但是該怎么證明呢?

  在文章中,我將用History API開發一個單頁應用來證明上述的問題。

  這也意味著我必須先在首頁加載必要的資源。現在開始,頁面僅僅加載需要的內容。換句話說,應用并不是一開始就加載了全部的內容,在請求第二個應用內容時,才會被加載。

  注意,您需要執行一些服務器端編碼只提供部分資源,而不是完整的頁面內容。
  瀏覽器支持

  在寫這篇文章的時候,各主流瀏覽器對History API的支持是非常不錯的,可以點擊此處查看其支持情況,這個鏈接會告訴你支持的瀏覽器,并使用之前,總有良好的實踐來檢測支持的特定功能。

  為了用變成方式確定瀏覽器是否支持這個API,可以用下面的一行代碼檢驗:
 

XML/HTML Code復制內容到剪貼板
  1. return !!(window.history && history.pushState);  

  此外,我建議參考一下這篇文章:Detect Support for Various HTML5 Features.(ps:后續會翻譯)

  如果你是用的現代瀏覽器,可以用下面的代碼:
 

XML/HTML Code復制內容到剪貼板
  1. if (Modernizr.history) {   
  2.     // History API Supported   
  3. }  

  如果你的瀏覽器不支持History API,可以使用history.js代替。
  使用History

  HTML 5提供了兩個新方法:

  1、history.pushState();                2、history.replaceState();

  兩種方法都允許我們添加和更新歷史記錄,它們的工作原理相同并且可以添加數量相同的參數。除了方法之外,還有popstate事件。在后文中將介紹怎么使用和什么時候使用popstate事件。

  pushState()和replaceState()參數一樣,參數說明如下:

  1、state:存儲JSON字符串,可以用在popstate事件中。

  2、title:現在大多數瀏覽器不支持或者忽略這個參數,最好用null代替

  3、url:任意有效的URL,用于更新瀏覽器的地址欄,并不在乎URL是否已經存在地址列表中。更重要的是,它不會重新加載頁面。

  兩個方法的主要區別就是:pushState()是在history棧中添加一個新的條目,replaceState()是替換當前的記錄值。如果你還對這個有迷惑,就用一些示例來證明這個區別。

  假設我們有兩個棧塊,一個標記為1,另一個標記為2,你有第三個棧塊,標記為3。當執行pushState()時,棧塊3將被添加到已經存在的棧中,因此,棧就有3個塊棧了。

  同樣的假設情景下,當執行replaceState()時,將在塊2的堆棧和放置塊3。所以history的記錄條數不變,也就是說,pushState()會讓history的數量加1.

  比較結果如下圖:

到此,為了控制瀏覽器的歷史記錄,我們忽略了pushState()和replaceState()的事件。但是假設瀏覽器統計了許多的不良記錄,用戶可能會被重定向到這些頁面,或許也不會。在這種情況下,當用戶使用瀏覽器的前進和后退導航按鈕時就會產生意外的問題。

  盡管當我們使用pushState()和replaceState()進行處理時,期待popstate事件被觸發。但實際上,情況并不是這樣。相反,當你瀏覽會話歷史記錄時,不管你是點擊前進或者后退按鈕,還是使用history.go和history.back方法,popstate都會被觸發。

  In WebKit browsers, a popstate event would be triggered after document’s onload event, but Firefox and IE do not have this behavior.(在WebKit瀏覽器中,popstate事件在document的onload事件后觸發,Firefox和IE沒有這種行為)。
  Demo示例

  HTML:
 

XML/HTML Code復制內容到剪貼板
  1. <div class="container">  
  2.     <div class="row">  
  3.         <ul class="nav navbar-nav">  
  4.             <li><a href="home.html" class="historyAPI">Home</a></li>  
  5.             <li><a href="about.html" class="historyAPI">About</a></li>  
  6.             <li><a href="contact.html" class="historyAPI">Contact</a></li>  
  7.         </ul>  
  8.     </div>  
  9.     <div class="row">  
  10.         <div class="col-md-6">  
  11.             <div class="well">  
  12.                 Click on Links above to see history API usage using <code>pushState</code> method.   
  13.             </div>  
  14.         </div>  
  15.         <div class="row">      
  16.             <div class="jumbotron" id="contentHolder">  
  17.                 <h1>Home!</h1>  
  18.                 <p>Lorem Ipsum is simply dummy text of the <span style="width: auto; height: auto; float: none;" id="5_nwp"><a style="text-decoration: none;" mpid="5" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=f7cb547a6e640f0a&k=printing&k0=printing&kdi0=0&luki=5&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=a0f646e7a54cbf7&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F5360%2Ehtml&urlid=0" id="5_nwl"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">printing</span></a></span> and typesetting industry.</p>  
  19.             </div>  
  20.         </div>  
  21.     </div>  
  22. </div>  

  JavaScript:

XML/HTML Code復制內容到剪貼板
  1. <script type="text/<span style="width: auto; height: auto; float: none;" id="1_nwp"><a style="text-decoration: none;" mpid="1" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=f7cb547a6e640f0a&k=javascript&k0=javascript&kdi0=0&luki=8&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=a0f646e7a54cbf7&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F5360%2Ehtml&urlid=0" id="1_nwl"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">javascript</span></a></span>">  
  2.     jQuery('document').ready(function(){   
  3.              
  4.         jQuery('.historyAPI').on('click', function(e){   
  5.             e.preventDefault();   
  6.             var href = $(this).attr('href');   
  7.                  
  8.             // Getting Content   
  9.             getContent(href, true);   
  10.                  
  11.             jQuery('.historyAPI').removeClass('active');   
  12.             $(this).<span style="width: auto; height: auto; float: none;" id="2_nwp"><a style="text-decoration: none;" mpid="2" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=f7cb547a6e640f0a&k=add&k0=add&kdi0=0&luki=3&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=a0f646e7a54cbf7&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F5360%2Ehtml&urlid=0" id="2_nwl"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">add</span></a></span>Class('active');   
  13.         });   
  14.              
  15.     });   
  16.          
  17.     // Adding popstate event listener to handle browser back button    
  18.     window.addEventListener("popstate", function(e) {   
  19.              
  20.         // Get State value using e.state   
  21.         getContent(location.pathname, false);   
  22.     });   
  23.          
  24.     function getContent(url, addEntry) {   
  25.         $.get(url)   
  26.         .done(function( <span style="width: auto; height: auto; float: none;" id="3_nwp"><a style="text-decoration: none;" mpid="3" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=f7cb547a6e640f0a&k=data&k0=data&kdi0=0&luki=6&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=a0f646e7a54cbf7&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F5360%2Ehtml&urlid=0" id="3_nwl"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">data</span></a></span> ) {   
  27.                  
  28.             // Updating Content on Page   
  29.             $('#contentHolder').html(data);   
  30.                  
  31.             if(<span style="width: auto; height: auto; float: none;" id="4_nwp"><a style="text-decoration: none;" mpid="4" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=f7cb547a6e640f0a&k=add&k0=add&kdi0=0&luki=3&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=a0f646e7a54cbf7&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F5360%2Ehtml&urlid=0" id="4_nwl"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">add</span></a></span>Entry == true) {   
  32.                 // Add History Entry using pushState   
  33.                 history.pushState(null, null, url);   
  34.             }   
  35.                  
  36.         });   
  37.     }   
  38. </script>  

  總結(ps:喜歡這兩個字~~~^_^~~~)

  HTML 5中的History API 對Web應用有著很大的影響。為了更容易的創建有效率的、對SEO友好的單頁面應用,它移除了對散列值的依賴。

標簽:內蒙古 黃山 辛集 蚌埠 德州 楊凌 撫順 鶴崗

巨人網絡通訊聲明:本文標題《深入探究HTML5的History API》,本文關鍵詞  深入,探究,HTML5,的,History,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《深入探究HTML5的History API》相關的同類信息!
  • 本頁收集關于深入探究HTML5的History API的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产一区视频导航| 午夜一区二区三区视频| 欧美视频一区在线| 久久97超碰色| 亚洲高清免费在线| 国产欧美精品国产国产专区| 欧美性videosxxxxx| 成人精品国产一区二区4080| 日本午夜精品视频在线观看 | 99精品久久久久久| 久久99久久久久| 香蕉影视欧美成人| 亚洲欧美区自拍先锋| 日本一区二区视频在线观看| 日韩一区二区视频在线观看| 欧美无砖砖区免费| 91香蕉视频污在线| av电影天堂一区二区在线| 久草中文综合在线| 日韩在线一区二区三区| 亚洲一区二区三区四区中文字幕| 日本精品一区二区三区高清| 国产网站一区二区三区| 不卡av电影在线播放| 一区二区三区四区视频精品免费| 精品国产免费久久| 99久久精品免费看国产免费软件| 亚洲视频一二区| 日韩欧美亚洲国产另类| 国产精品一线二线三线| 中文字幕一区二区三区蜜月 | 日本一区二区视频在线观看| 99精品视频一区二区三区| 一级女性全黄久久生活片免费| 337p亚洲精品色噜噜狠狠| 成人永久aaa| 欧美sm美女调教| 91久久精品网| 日本不卡的三区四区五区| 日本久久一区二区| 欧美日韩在线观看一区二区| 国产精品久久久久久久浪潮网站| 国产农村妇女毛片精品久久麻豆| 欧美日韩不卡一区| 欧美精品三级在线观看| 欧美区在线观看| 在线不卡a资源高清| 91精品国产综合久久久久久| 日韩一区二区免费电影| 精品久久久久久综合日本欧美| 精品对白一区国产伦| 欧美国产激情一区二区三区蜜月| 色综合久久综合中文综合网| 国产精品性做久久久久久| 青青草伊人久久| 亚洲成人综合网站| 亚洲综合色自拍一区| 国产欧美一区二区精品秋霞影院 | 亚洲精品videosex极品| 国产欧美视频在线观看| 26uuuu精品一区二区| 日韩一卡二卡三卡四卡| 日韩亚洲欧美成人一区| 欧美日韩免费一区二区三区视频| 91在线高清观看| 在线观看精品一区| 欧美色视频在线| 91精品国产全国免费观看| 欧美日韩在线电影| 91精品国产91综合久久蜜臀| 91精品国产综合久久精品app| 欧美一级日韩一级| 欧美日韩国产123区| 精品乱人伦小说| 一区二区三区在线播| 日日骚欧美日韩| 日韩高清电影一区| 亚洲国产精品综合小说图片区| 亚洲人妖av一区二区| 亚洲欧美国产高清| 国产suv精品一区二区三区| 中文字幕欧美日韩一区| 欧美人与z0zoxxxx视频| 成人av资源站| 91精品国产欧美一区二区成人 | 666欧美在线视频| 国产欧美va欧美不卡在线| 亚洲国产日产av| 国产成人精品aa毛片| 欧美日韩精品一区二区天天拍小说 | 成人福利在线看| 欧美日韩国产综合视频在线观看| 久久亚区不卡日本| 亚洲精品老司机| 国产毛片精品视频| 欧美吞精做爰啪啪高潮| 久久久久一区二区三区四区| 亚洲chinese男男1069| 91小视频免费看| 欧美国产丝袜视频| 蜜臀av一区二区在线观看| 色综合咪咪久久| 国产精品人妖ts系列视频| 欧美aaa在线| 在线不卡免费欧美| 亚洲人被黑人高潮完整版| 国产精品538一区二区在线| 欧美乱妇15p| 午夜精品久久一牛影视| 88在线观看91蜜桃国自产| 亚洲综合在线免费观看| 精品免费视频.| 亚洲天堂免费在线观看视频| 一本久道中文字幕精品亚洲嫩| 91久久国产最好的精华液| 日韩欧美自拍偷拍| 免费在线看成人av| 欧美成人性战久久| 欧美三级视频在线观看| 欧美三级午夜理伦三级中视频| www.日韩av| 成人免费不卡视频| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 在线精品国精品国产尤物884a| 国产精品欧美一区二区三区| 国产在线不卡视频| 欧美xxxxx裸体时装秀| 欧美系列一区二区| 肉丝袜脚交视频一区二区| 日韩精品一区国产麻豆| 成人黄色av网站在线| 亚洲精品日韩综合观看成人91| 91网址在线看| 精品一区二区三区在线播放视频 | 亚洲美女淫视频| 欧美最猛性xxxxx直播| 全国精品久久少妇| 精品国产91乱码一区二区三区| 国产成人在线观看| 亚洲国产精品久久久男人的天堂 | 福利一区在线观看| 一区二区三区在线视频免费观看 | 亚洲欧洲99久久| 精品久久久久一区| 色综合久久久久综合99| 日日夜夜免费精品| 一区二区三区四区不卡在线| 精品少妇一区二区三区免费观看 | 国产欧美视频在线观看| 美女视频一区在线观看| 精品欧美一区二区三区精品久久| 国产成人精品亚洲777人妖| 亚洲一区在线播放| 麻豆成人免费电影| 欧美精品在线一区二区| 精品国产亚洲一区二区三区在线观看 | 中文一区二区完整视频在线观看| 不卡在线视频中文字幕| 一区二区三区丝袜| 4438x亚洲最大成人网| 国产精品一区二区x88av| 中文字幕亚洲成人| 91久久精品一区二区二区| 欧美aⅴ一区二区三区视频| 26uuu国产在线精品一区二区| 成人精品一区二区三区中文字幕| 免费观看在线综合| 蜜臀av在线播放一区二区三区| 亚洲综合免费观看高清完整版在线| 欧美激情一区不卡| 久久夜色精品国产欧美乱极品| 91精品国产色综合久久ai换脸| 欧美卡1卡2卡| 日韩免费看的电影| 26uuu精品一区二区三区四区在线| 欧美xxxxxxxx| 亚洲国产成人一区二区三区| 国产欧美日韩在线| 国产精品成人一区二区三区夜夜夜| 久久久不卡网国产精品二区| 国产精品网友自拍| ...av二区三区久久精品| 亚洲欧美日韩在线不卡| 亚洲成人免费视频| 蜜桃在线一区二区三区| 国产一区二区成人久久免费影院| 国产综合成人久久大片91| 粉嫩av亚洲一区二区图片| 91在线看国产| 日韩视频在线你懂得| 国产性天天综合网| 天天av天天翘天天综合网 | 色综合天天综合给合国产| 91免费版在线| 欧美成人性福生活免费看| 亚洲国产成人porn| 久久久综合视频| 一区二区三区四区不卡视频| 婷婷丁香激情综合| 国产精品99久久久久久有的能看|