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