jQuery pjax 应用简单示例


Posted in jQuery onSeptember 20, 2018

ajax缺点是破坏了浏览器的前进后退,因为ajax的请求不会留在历史记录中。pjax就不一样了,pjax被解释成ajax+pushState的封装,因为它把ajax的请求写入历史记录,并反映在地址栏,这样用户就能愉快地使用前进后退了。pjax有好几个实现方法,这里使用最常用的Jquery库,使用jquery.pjax.js。演示代码的服务器端使用PHP脚本语言。

Pjax用在那儿?就说百度云盘吧,这个大家肯定都用过。百度云盘PC端,在点击打开某个文件夹后会打开这个文件夹下的文件,其实显示文件的这个div就用到了pjax技术。地址栏变换,内容更换,但是却是一个ajax请求。等到后退的时候,不必重新请求上一层文件夹的内容,因为是存在在历史记录中的。而且,开发者还可以选择时候使用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>

服务器端:

res1.php

<?php 
echo "<div style='background:red;'>第一页</div>";

res2.php

<?php 
echo "<div style='background:red;'>第二页</div>";

解释:$(document).pjax('a', '#container')其中a是触发元素,#container是装载pjax返回内容的容器,下面也是这样。

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>

服务器端代码:

res3.php:

<?php 
echo "<div style='background:red;'>第三页</div>";

源码:jQuery pjax

总结:

 此篇文章总结了一些大家常见的jQuery pjax 应用示例,喜欢的同学可以参考借鉴一下。

jQuery 相关文章推荐
jquery.form.js异步提交表单详解
Apr 25 jQuery
jQuery手风琴的简单制作
May 12 jQuery
jquery Ajax实现Select动态添加数据
Jun 08 jQuery
js案例之鼠标跟随jquery版(实例讲解)
Jul 21 jQuery
jQuery动态添加.active 实现导航效果代码思路详解
Aug 29 jQuery
jQuery 利用ztree实现树形表格的实例代码
Sep 27 jQuery
jQuery zTree 异步加载添加子节点重复问题
Nov 29 jQuery
jQuery实现的老虎机跑动效果示例
Dec 29 jQuery
jquery实现Ajax请求的几种常见方式总结
May 28 jQuery
jQuery 动画与停止动画效果实例详解
May 19 jQuery
jquery轮播图插件使用方法详解
Jul 31 jQuery
jQuery实现动态操作table行
Nov 23 jQuery
jQuery easyui datagird编辑行删除行功能的实现代码
Sep 20 #jQuery
jQuery 点击获取验证码按钮及倒计时功能
Sep 20 #jQuery
jQuery使用each遍历循环的方法
Sep 19 #jQuery
jquery 动态遍历select 赋值的实例
Sep 12 #jQuery
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 #jQuery
jQuery插件实现的日历功能示例【附源码下载】
Sep 07 #jQuery
jQuery中each遍历的三种方法实例分析
Sep 07 #jQuery
You might like
提问的智慧(2)
2006/10/09 PHP
php 什么是PEAR?(第二篇)
2009/03/19 PHP
php数据库抽象层 PDO
2011/05/07 PHP
php Calender(日历)代码分享
2014/01/03 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
新闻内页-JS分页
2006/06/07 Javascript
JavaScript中的其他对象
2008/01/16 Javascript
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
用AngularJS的指令实现tabs切换效果
2016/08/31 Javascript
微信JS SDK接入的几点注意事项(必看篇)
2017/06/23 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
vue项目接口域名动态获取操作
2020/08/13 Javascript
python实现井字棋游戏
2020/03/30 Python
Python自动化开发学习之三级菜单制作
2017/07/14 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
django 微信网页授权登陆的实现
2019/07/30 Python
基于python实现查询ip地址来源
2020/06/02 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
Huda Beauty官方商店:化妆和美容产品
2020/09/05 全球购物
动物学专业毕业生求职信
2013/10/11 职场文书
消防安全标语
2014/06/07 职场文书
查摆剖析材料范文
2014/09/30 职场文书
解决jupyter notebook图片显示模糊和保存清晰图片的操作
2021/04/24 Python