jQuery pjax 應(yīng)用簡(jiǎn)單示例
ajax缺點(diǎn)是破壞了瀏覽器的前進(jìn)后退,因?yàn)閍jax的請(qǐng)求不會(huì)留在歷史記錄中。pjax就不一樣了,pjax被解釋成ajax+pushState的封裝,因?yàn)樗補(bǔ)jax的請(qǐng)求寫(xiě)入歷史記錄,并反映在地址欄,這樣用戶就能愉快地使用前進(jìn)后退了。pjax有好幾個(gè)實(shí)現(xiàn)方法,這里使用最常用的Jquery庫(kù),使用jquery.pjax.js。演示代碼的服務(wù)器端使用PHP腳本語(yǔ)言。
Pjax用在那兒?就說(shuō)百度云盤(pán)吧,這個(gè)大家肯定都用過(guò)。百度云盤(pán)PC端,在點(diǎn)擊打開(kāi)某個(gè)文件夾后會(huì)打開(kāi)這個(gè)文件夾下的文件,其實(shí)顯示文件的這個(gè)div就用到了pjax技術(shù)。地址欄變換,內(nèi)容更換,但是卻是一個(gè)ajax請(qǐng)求。等到后退的時(shí)候,不必重新請(qǐng)求上一層文件夾的內(nèi)容,因?yàn)槭谴嬖谠跉v史記錄中的。而且,開(kāi)發(fā)者還可以選擇時(shí)候使用cache和storage緩存。
DEMO1:
客戶端:
<!DOCTYPE html>
<html>
<head>
<title>pjax</title>
<meta charset="utf-8">
</head>
<body>
<h1>My Site</h1>
<div>
Go to <a href="res1.php">第一頁(yè)</a>.<a href="res2.php">第二頁(yè)</a>
</div>
<div id="container"></div>
</body>
<script src="../jquery-2.1.4.min.js"></script>
<script src="../jquery.pjax.js"></script>
<script type="text/javascript">
$(document).pjax('a', '#container')
</script>
</html>
服務(wù)器端:
res1.php
<?php echo "<div style='background:red;'>第一頁(yè)</div>";
res2.php
<?php echo "<div style='background:red;'>第二頁(yè)</div>";
解釋:$(document).pjax('a', '#container')其中a是觸發(fā)元素,#container是裝載pjax返回內(nèi)容的容器,下面也是這樣。
DEMO2:
<!DOCTYPE html>
<html>
<head>
<title>pjax</title>
<meta charset="utf-8">
</head>
<body>
<h1>My Site</h1>
<div>
Go to <a href="res1.php">第一頁(yè)</a>.<a href="res2.php">第二頁(yè)</a>
</div>
<div id="container"></div>
</body>
<script src="../jquery-2.1.4.min.js"></script>
<script src="../jquery.pjax.js"></script>
<script type="text/javascript">
$(document).pjax('a', '#container')
</script>
</html>
客戶端:
<!DOCTYPE html>
<html>
<head>
<title>pjax</title>
<meta charset="utf-8">
</head>
<body>
<h1>My Site</h1>
<div>
<input type="button" id="clickMe" value="GO">
</div>
<div id="container"></div>
</body>
<script src="../jquery-2.1.4.min.js"></script>
<script src="../jquery.pjax.js"></script>
<script type="text/javascript">
$(function(){
$('#clickMe').click(function(){
$.pjax({
url: './res3.php',
container: '#container'
});
});
});
</script>
</html>
服務(wù)器端代碼:
res3.php:
<?php echo "<div style='background:red;'>第三頁(yè)</div>";
源碼:jQuery pjax
總結(jié):
此篇文章總結(jié)了一些大家常見(jiàn)的jQuery pjax 應(yīng)用示例,喜歡的同學(xué)可以參考借鑒一下。
相關(guān)文章
$("").click與onclick的區(qū)別示例介紹
onclick是綁定事件,click本身是方法作用是觸發(fā)onclick事件,只要執(zhí)行了元素的click()方法,下面有個(gè)示例,大家可以看看2014-09-09
jQuery實(shí)現(xiàn)動(dòng)態(tài)添加節(jié)點(diǎn)與遍歷節(jié)點(diǎn)功能示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)動(dòng)態(tài)添加節(jié)點(diǎn)與遍歷節(jié)點(diǎn)功能,結(jié)合實(shí)例形式分析了jQuery針對(duì)頁(yè)面元素節(jié)點(diǎn)元素的動(dòng)態(tài)添加與遍歷相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
jQuery文本框(input textare)事件綁定方法教程
jquery的事件綁定已經(jīng)用on替換了原來(lái)的bind,接下來(lái)為大家分享下bind的使用方法及input textare事件2013-04-04
jQuery獲取CSS樣式中的顏色值的問(wèn)題,不同瀏覽器格式不同的解決辦法
jQuery獲取CSS樣式中的顏色值的問(wèn)題,不同瀏覽器格式不同的解決辦法,需要的朋友可以參考一下2013-05-05
jQuery控制文本框只能輸入數(shù)字和字母及使用方法
這篇文章主要介紹了jQuery控制文本框只能輸入數(shù)字和字母及使用方法的相關(guān)資料,非常不錯(cuò)而且實(shí)用性也很高,需要的朋友可以參考下2016-05-05
jQuery.form.js插件不能解決連接超時(shí)(timeout)的原因分析及解決方法
jQuery.form.js是一個(gè)form插件,支持ajax表單提交和ajax文件上傳。最近在使用jquery.form.js提交包含文件的表單時(shí),當(dāng)碰上網(wǎng)速較慢時(shí),而我們又設(shè)置了timeout時(shí)我們的頁(yè)面會(huì)死在這里,怎么回事呢,下面腳本之家小編給大家解答下2016-10-10
JQuery 綁定事件時(shí)傳遞參數(shù)的實(shí)現(xiàn)方法
JQuery 綁定事件時(shí)傳遞參數(shù)的實(shí)現(xiàn)方法,需要的朋友可以參考下。2009-10-10

