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点赞功能实现代码 点个赞吧!
May 29 jQuery
解决jQuery ajax动态新增节点无法触发点击事件的问题
May 24 jQuery
jquery Form轻松实现文件上传
May 24 jQuery
jQuery回调方法使用示例
Jun 26 jQuery
集成vue到jquery/bootstrap项目的方法
Feb 10 jQuery
jQuery实现使用sort方法对json数据排序的方法
Apr 17 jQuery
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
Oct 26 jQuery
详解JQuery基础动画操作
Apr 12 jQuery
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
Jun 18 jQuery
jquery绑定事件 bind和on的用法与区别分析
May 22 jQuery
jQuery 添加元素和删除元素的方法
Jul 15 jQuery
jQuery实现手风琴特效
Jan 11 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
php session应用实例 登录验证
2009/03/16 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
跟我学Laravel之配置Laravel
2014/10/15 PHP
php 批量查询搜狗sogou代码分享
2015/05/17 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
javascript 时间比较实现代码
2009/10/28 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
详解Vue使用 vue-cli 搭建项目
2017/04/20 Javascript
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
[52:08]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第一局
2016/03/05 DOTA
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
python障碍式期权定价公式
2019/07/19 Python
NumPy排序的实现
2020/01/21 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
python中pow函数用法及功能说明
2020/12/04 Python
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
教师三严三实对照检查材料
2014/09/25 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
九年级语文教学反思
2016/03/03 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
k8s部署redis cluster集群的实现
2021/06/24 Redis