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用noConflict代替$的实现方法
Apr 12 jQuery
JQuery实现定时刷新功能代码
May 09 jQuery
jQuery返回定位插件详解
May 15 jQuery
jQuery实现一个简单的验证码功能
Jun 26 jQuery
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
jquery 键盘事件的使用方法详解
Sep 13 jQuery
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
jQuery读取本地的json文件(实例讲解)
Oct 31 jQuery
jQuery插件Validation表单验证详解
May 26 jQuery
jQuery实现的简单拖拽功能示例【测试可用】
Aug 14 jQuery
用jQuery将JavaScript对象转换为querystring查询字符串的方法
Nov 12 jQuery
JQuery Ajax如何实现注册检测用户名
Sep 25 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函数(简单整理)
2010/04/30 PHP
在PHP中养成7个面向对象的好习惯
2010/07/17 PHP
PHP将两个关联数组合并函数提高函数效率
2014/03/18 PHP
[原创]smarty简单模板变量输出方法
2016/07/09 PHP
php实现贪吃蛇小游戏
2016/07/26 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
URL地址中的#符号使用说明
2011/02/12 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
JS模拟按钮点击功能的方法
2015/12/22 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
canvas时钟效果
2017/02/16 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
kafka-python批量发送数据的实例
2018/12/27 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
python调用摄像头拍摄数据集
2019/06/01 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
python多线程并发实例及其优化
2019/06/27 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
Python多线程的退出控制实现
2020/08/10 Python
使用Python爬取小姐姐图片(beautifulsoup法)
2021/02/11 Python
SheIn俄罗斯:时尚女装网上商店
2017/02/28 全球购物
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
学校采购员岗位职责
2014/01/02 职场文书
解除合同协议书
2014/04/17 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书
nginx配置限速限流基于内置模块
2022/05/02 Servers