node+pjax实现不刷新跳转
做前端的都知道如果通过a标签去访问跳转到某一个页面,浏览器会自动刷新。那么如何实现不刷新跳转?
html5的出现让我们可以实现不刷新跳转页面。主要使用的方法:history.pushState(data,str,url) 。不知道的百度 h5 history api。
现在不用自己来造轮子,我们直接引入jquery.pjax。使用方法 https://github.com/defunkt/jquery-pjax/
先来看我的前端代码:
//$('document').pjax('html元素','需要跟新的容器') 给html元素绑定pjax传输的方法
$(document).pjax('.header a,.container a,#divSearchPanel input', '.container', {
fragment: '.container',
timeout: 1500
});
//用ajax来实现
//pjax请求带pjax header
$.ajax({
url: a.attr('href')ajaxUrl,
type: 'GET',
headers: {'x-pjax': true},
success: function (data) {
//localStorage ...
history.pushState('', '', url);
//containor 填充
}
});
这个时候所有通过a标签发送的请求header里面都会出现x-pjax:true;

前端部分完成,开始来部署后台;
正常的路由部分省略,直接用express安装就好
var pjax = require('express-pjax');
app.use(pjax());
router.get('/',function (req,res) {
if (req.headers['x-pjax']) {//如果x-pjax为true使用res.renderPjax()返回页面
res.renderPjax('msg');
}
res.render('msg');
});

这样看来,其实并没有想象那么复杂,我想,不是对IE789有特别要求的,都可以考虑使用,为了兼容也可以先判断是否支持pushState,决定是否将链接转化为pjax;这种事前端做的太多了,何乐而不为呢?
node+pjax实现不刷新跳转的更多相关文章
- 黄聪:Pjax无刷新跳转页面实现,支持超链接与表单提交
什么是pjax? 当你点击一个站内的链接的时候,不是做页面跳转,而是只是站内页面刷新.这样的用户体验,比起整个页面都闪一下来说, 好很多. 其中有一个很重要的组成部分, 这些网站的ajax刷新是支持浏 ...
- 有趣的API: history pushState/popstate 无刷新跳转(pjax)
API介绍 首先看看API如何使用: history.pushState(state, title, url) : 无刷新的向浏览器 历史最前方 加入一条记录. state(any) 需要保存的数据, ...
- Pjax无刷新跳转页面实现,支持超链接与表单提交
什么是pjax? 当你点击一个站内的链接的时候,不是做页面跳转,而是只是站内页面刷新.这样的用户体验,比起整个页面都闪一下来说, 好很多. 其中有一个很重要的组成部分, 这些网站的ajax刷新是支持浏 ...
- 利用history实现无刷新跳转界面
看标题是不是感觉很拽的样子,其实没什么啦,也就是时下常说的单页面应用.这种web形式在如今的移动端十分流行,毕竟在移动端频繁得去刷新界面不是很友好,而且还费流量.今天我们要做一个小的app(移动端), ...
- 使用 pjax 实现无刷新切换页面
一.目的 1.当打开链接的时候,页面是淡入显示,并且页面顶部会显示加载进度条,页面显示完成时,进度条加载满并且消失. 2.点击页面上的 a 标签时,显示加载进度条,并且当前页面淡出消失,当前页面淡出消 ...
- jQuery Pjax – 页面无刷新加载,优化用户体验
pjax 是 HTML5 pushState 以及 Ajax 两项技术的简称,综合这两个技术可以实现在不刷新页面的情况下载入 HTML 到当前网页,带给你超快速的浏览器体验,而且有固定链接.标题以及后 ...
- js页面刷新跳转的几种方式及区别
跳转常用方法: window.location.href="index.php"; window.history.back(-1);//类似于按钮,参数是负几,就后退几次. win ...
- typecho开启pjax,ajax,无刷新
1.引入jquery和pjax 检查你的网站是否引入1.7.0版本以上的jquery.js,如果没有请全局引入 https://files.cnblogs.com/files/fan-bk/pjax. ...
- emlog通过pjax实现无刷新加载网页--完美解决cnzz统计和javascript失效问题
想要更详细了解pjax,需要查看官网 或者看本站文章:jQuery.pjax.js:使用AJAX和pushState无刷新加载网页(官网教程中文翻译) 效果看本站,音乐无刷新播放,代码高亮和复制js加 ...
随机推荐
- 常见的哈希Hash算法 & MD5 & 对称非对称加密 & 海明码
参考 Link 另外,这篇文章也提到了利用Hash碰撞而产生DOS攻击的案例: http://www.cnblogs.com/charlesblc/p/5990475.html DJB的算法实现核心是 ...
- linked-list-cycle-ii——链表,找出开始循环节点
Given a linked list, return the node where the cycle begins. If there is no cycle, returnnull. Follo ...
- 一句话说清楚啥是delegate
所谓托付就是类对象调用.托付对象代表随意实现该托付的类的对象.
- sublime 高速打开跳转至关联文件
在下一枚web前端,近期在用sublime text2编辑器写前端.因为页面较多,项目较大,所以难免出现非常多引用文件和一些js的teample模板. 问题:在Sublime Text编写代码过程中要 ...
- 【手势交互】4. Kinect for XBox
"You are the Controller",Kinect for Xbox的广告词.明白说明了Kinect体感的交互方式.作为一款集成了诸多先进视觉技术的自然交互设备,Kin ...
- hihoCoder 1234 fractal
#1234 : Fractal 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 This is the logo of PKUACM 2016. More specific ...
- mybatis 动态curd
xml <select id="selectByCondition" parameterType="com.oracle.pojo.Student" re ...
- HDU 5366:The mook jong 递推
The mook jong Accepts: 506 Submissions: 1281 Time Limit: 2000/1000 MS (Java/Others) Memory Limit ...
- 开源项目:单行日历(CalendarView)
http://www.cnblogs.com/warnier-zhang/p/4750525.html CalendarView.zip
- Android 上的 制表符(tab) —— 一个奇妙的字符 (cocos2dx crash)
今天測试发现了游戏的一个问题,系统邮件,假设发了tab,在android上一打开邮件内容就会crash.并且他们非常确定是tab的问题. 凭我多个月的经验(确实没多年. . .)来看.从来没听说在an ...