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-data的三种用法
Apr 18 jQuery
jquery实现提示语淡入效果
May 05 jQuery
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
使用jQuery实现页面定时弹出广告效果
Aug 24 jQuery
jQuery代码优化方法总结
Jan 29 jQuery
jQuery实现鼠标响应式淘宝动画效果示例
Feb 13 jQuery
详解jQuery中的isPlainObject()使用方法
Feb 27 jQuery
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
jQuery操作cookie的示例代码
Jun 05 jQuery
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
Jul 10 jQuery
jquery传参及获取方式(两种方式)
Feb 13 jQuery
Jquery使用each函数实现遍历及数组处理
Jul 14 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内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
php进行md5加密简单实例方法
2019/09/19 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
浅谈Vue.js
2017/03/02 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
Python入门_条件控制(详解)
2017/05/16 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
Java文件和目录(IO)操作
2014/08/26 面试题
Structs界面控制层技术
2013/10/11 面试题
专业求职信撰写要诀
2014/02/18 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
教师教育心得体会
2016/01/19 职场文书
Node与Python 双向通信的实现代码
2021/07/16 Javascript
vue-cli3.x配置全局的scss的时候报错问题及解决
2022/04/30 Vue.js