标签:
自我感觉良好,所以拿出现在自己用的 Pjax.js 分享给大家
当然 这个版本是 经过本人修改后的版本,跟其它 拿过来就用的 不一样 而且区别还不小
大多的 Pjax 都是 跟后台无关的,而这个版本是跟后台有密切联系的
下面就是说下 代码 以及使用方法,包括后台 内容输出格式
先说说方法吧
要用了解的东西是真是不少
但好在是 自己写的比较熟悉了
接着就是代码部分了 JS 示例:
$.pjax({ selector: ‘a[href^="‘+ BLOG_URL +‘"]:not("[ja_link],[no-pjax]")‘, container: "#main,.top", /* 替换 HTML 的选择器 */ cache: false, /* 缓存时间 单位: 秒 默认: false (不缓存) */ top: 0, /* 滚动条偏移 默认为 0 */ filter: function(u, e) { /* 复杂的筛选器 返回 true 不需要 Pjax */ if (/admin\/|rss\.php/i.test(u)) return true; }, callback: pjaxCallback }); $(document) // 提交方式 为 GET 的表单 用 Pjax 处理 .on(‘submit‘, ‘form[method=get]‘, function(){ var $t = $(this); $.pjax.pjaxGet($t.attr("action") +‘?‘+ $t.serialize()); return false; }) // #commentform 表单 EMLOG 默认 评论表单 (EMLOG 评论需修改 评论失败提示用 msg 返回) .on(‘submit‘, ‘#commentform‘, function(){ var $t = $(this), pid = $t.find(‘input[name=pid]‘).val(); // 获取 评论后需要滚动到的位置 如果为 直接评论文章 就获取 评论列表 #comments 高度 if(pid == 0) var top = $(‘#comments‘).offset().top else // 如果 为回复其它评论 就获取 被回复评论 高度 var top = $("#comment-" + pid).offset().top $.pjax.pjaxGet($t.attr("action"), $t.serialize(), { url: document.location.href, title: document.title, top: top - 20 }); return false; })
接着就是 PHP 后台对于 Pjax 请求输出的栗子:
die(json_encode(array( ‘code‘ => 200, ‘msg‘ => false, ‘html‘ => array( ‘.top‘ => ‘class=top 输出内容 本人博客 此处是 幻灯,如果不是首页 不需要输出幻灯的话,输出 空内容即可‘, ‘#main‘ => ‘这里是 id=main 的 HTML 内容‘ ), ‘title‘ => ‘CSS 样式练习 - 简爱‘, // 页面标题 // 需要你运行的 JS 代码 这里是 Piwik 的 Ajax 统计 与自定义变量 用于统计 Pjax 事件 ‘scriptStr‘ => ‘ _paq.push(["setCustomVariable", 1, "pjax", "{pjax}", "page"]); _paq.push(["setCustomUrl", "{url}"]); _paq.push(["trackPageView", "{title}"]);‘ )));
标签:
原文地址:http://www.cnblogs.com/bccn/p/4887295.html