node+pjax实现不刷新跳转
来源:互联网 发布:网络诈骗报警有用吗 编辑:程序博客网 时间:2024/06/01 08:09
做前端的都知道如果通过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;这种事前端做的太多了,何乐而不为呢?
更多原创文章访问:meetqy.com
阅读全文
0 0
- node+pjax实现不刷新跳转
- pjax实现页面局部刷新跳转
- pjax实现无刷新
- Pjax实现网页局部刷新
- PJAX实现页面无刷新跳转及加载数据(浏览器可回退前进)
- Codeigniter整合PJAX(pushstate+ajax)实现无刷新页面
- thinkphp+Pjax Demo 实现无刷新改变URL的方式
- history.pushState()实现不跳转,改变路由异步刷新
- 在 Laravel 5 中集成 Pjax 实现无刷新加载页面的扩展包 —— Laravel Pjax
- php pjax JS自动刷新
- 两个页面跳转不刷新
- 点击超链接不跳转,不刷新页面
- 点击超链接不跳转,不刷新页面
- html form表单提交后不刷新不跳转的实现方法------巧妙地用iframe
- html form表单提交后不刷新不跳转的实现方法------
- html form表单提交后不刷新不跳转的实现方法------
- html form表单提交后不刷新不跳转的实现方法------
- form表单提交后不刷新不跳转的实现方法
- 换行符与回车符 \r\n 以及append的几个重载函数
- node+ws模块实现websocket
- Qt 4.8 Customizing Qt Widgets Using Style Sheets
- 自定义Dailog,布局向上移动,windowFullscreen
- centos配置nodejs和mysql
- node+pjax实现不刷新跳转
- SSL双向认证Java实现 Tomcat篇
- 分析express-pjax
- Javaweb项目tomcat启动时报:IOException while loading persisted sessions: java.io.EOFException的解决方法
- 解决“/bin/bash^M: bad interpreter: No such file or directory”
- 两行代码搞定网站gzip压缩
- LeetCode[383] Ransom Note
- 那些你不知道的js使用技巧
- nodejs实现百度实时推送