Ajax與pjax
AJAX即“Asynchronous Javascript And XML”(異步JavaScript和XML),是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。通過在后臺與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX可以使網(wǎng)頁實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進(jìn)行更新-無刷新操作。
但是,ajax應(yīng)用也會造成另外的問題,容易導(dǎo)致瀏覽器無法前進(jìn)與后退,這是個很頭疼的問題,開發(fā)人員必須增加工作量(比如通過一個隱藏的iframe,或者改變location.hash值等方法)來解決。
為了解決傳統(tǒng)ajax帶來的問題,HTML5里引入了新的API:history.pushState,它和ajax結(jié)合后,有個新的稱呼是pjax。是一種基于ajax+history.pushState的新技術(shù),該技術(shù)可以無刷新改變頁面的內(nèi)容,并且可以改變頁面的URL。pjax是ajax+pushState的封裝,同時(shí)支持本地存儲、動畫等多種功能。目前支持jquery、qwrap、kissy等多種版本。

HTML5.history.pushState
HTML5可以通過pushState和replaceState接口操作瀏覽器歷史,并且改變當(dāng)前頁面的URL。
pushState是將指定的URL添加到瀏覽器歷史里,存儲當(dāng)前歷史記錄點(diǎn)。replaceState是將指定的URL替換當(dāng)前的URL。同時(shí),這些方法會和window.onpostate事件一起工作。
history.pushState(data, title, url) : 往歷史記錄堆棧頂部添加一條記錄;data會在onpopstate事件觸發(fā)時(shí)作為參數(shù)傳遞過去;title為頁面標(biāo)題,當(dāng)前所有瀏覽器一般都會 忽略此參數(shù);url為頁面地址,可選,缺省為當(dāng)前頁地址。具體細(xì)節(jié):
state 主站蜘蛛池模板: 牙克石市| 曲水县| 常德市| 翼城县| 元江| 泽普县| 昌乐县| 阿拉善右旗| 洛扎县| 长垣县| 临夏市| 岳西县| 巨野县| 怀远县| 义乌市| 绥中县| 太仆寺旗| 报价| 河津市| 工布江达县| 黄浦区| 尤溪县| 元朗区| 玛沁县| 临海市| 大化| 通化市| 阳东县| 钟山县| 峨眉山市| 梨树县| 盐山县| 勃利县| 桦甸市| 嘉黎县| 棋牌| 富裕县| 青河县| 武城县| 平昌县| 禄劝|