自我感受良好,因此拿出如今本身用的 Pjax.js 分享給你們
固然 這個版本是 通過本人修改後的版本,跟其它 拿過來就用的 不同 並且區別還不小
大多的 Pjax 都是 跟後臺無關的,而這個版本是跟後臺有密切聯繫的
下面就是說下 代碼 以及使用方法,包括後臺 內容輸出格式
先說說方法吧php
要用瞭解的東西是真是很多
但好在是 本身寫的比較熟悉了
接着就是代碼部分了 JS 示例:html
$.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 請求輸出的栗子:ajax
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}"]);' )));