pjax

pjax = pushState + ajax,pjax是一个jQuery插件……

既然是jQuery插件,当然要有jQuery了

1
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

当然,事实上不用也可以,详见保罗的让你的网站实现 PJAX 无刷新
而我要说的是有jQuery的,至于为啥?当然是上面的难搞,懒得搞啦!
然后再引入pjax.js

1
2
<script src="https://cdn.bootcss.com/jquery.pjax/2.0.1/jquery.pjax.js"></script>
<script src="https://cdn.bootcss.com/jquery.pjax/2.0.1/jquery.pjax.min.js"></script>

我们发现有两个js,分别是pjax.js和pjax.min.js,好奇心强的我就问了,有啥区别呢?比如jQuery.js和jQuery.min.js,区别就是.js是没有压缩的.min.js是压缩过的,选哪个都行。
再来,引入js文件后

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$(function() {
$(document).pjax('a[target!=_blank]', 'main', {fragment:'main', timeout:6000});
$(document).on('pjax:send', function() {
$('#main').fadeTo(700,0.0);
});
$(document).on('pjax:complete', function() {
$('#main').fadeTo(700,1);
});
});

//'a[target!=_blank]'代表所有target不等于_blank的a标签,即点这些a标签就会触发pjax
//'main'CSS选择器,pjax改变的地方
//fragment同'main'就行
//还有一个超时,应该是以毫秒为单位
//'pjax:send'开始发送事件
//'pjax:complete'发送完成事件
//当然还有'pjax:success'成功事件和'pjax:error'失败事件

经过思考,我决定不用jQuery了,主要是用了某些js改变的东西会失效,
比如本站的目录,需要重载才行,太麻烦,真心麻烦!


满分是10分的话,这篇文章你给几分,您的支持将鼓励我继续创作!