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 主站蜘蛛池模板: 碌曲县| 荥经县| 深圳市| 大港区| 四平市| 达拉特旗| 罗平县| 利辛县| 临澧县| 安西县| 永城市| 榆社县| 和平县| 定陶县| 富平县| 贺州市| 宣武区| 武安市| 阿合奇县| 英超| 类乌齐县| 灵寿县| 宣汉县| 阳城县| 砚山县| 玛多县| 游戏| 长乐市| 醴陵市| 腾冲县| 乐东| 司法| 昆明市| 富源县| 万安县| 南和县| 威海市| 蒲城县| 荥阳市| 博爱县| 富阳市|