pjax 百度都是api 也沒找到demo 本身寫了一個 C#寫的 須要iis架設javascript
測試ie10 和 火狐 成功 html
ie10不要用兼容模式 否則很差使java
iis 能夠直接架設webDemo1文件夾(源碼)jquery
打開根目錄Default.html
點pjax_demo進入git
pjax靜態頁沒實現出來 目前只能架設服務器後使用github
下載鏈接: pjax實例下載web
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="aaaa.aspx.cs" Inherits="pjax_aaaa" %> <% bool bb = false; try { bb = bool.Parse(Request.Params["pjax"]); } catch { } if (bb) {%> <div id="Div1" style="border: 1px solid red;"> <a href="bbbb.aspx" title="abc">bbb</a> <a href="cccc.aspx" title="abc">ccc</a> <a href="dddd.aspx" title="abc">ddd</a> <br /> <br /> <br /> <br /> 異步,刷新我都變AAAAAAAAAAAA </div> <%} else { %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="jquery-1.9.1.min.js" type="text/javascript"></script> <script src="jquery.pjax.js" type="text/javascript"></script> <script> //快捷獲取DOM function A(id) { if (typeof id == "string") { return document.getElementById(id); } else if (typeof id == "object") { return id; } } $(function () { $.pjax({ selector: 'a', container: '#container', //內容替換的容器 show: 'fade', //展示的動畫,支持默認和fade, 能夠自定義動畫方式,這裏爲自定義的function便可。 cache: false, //是否使用緩存 storage: true, //是否使用本地存儲 titleSuffix: '', //標題後綴 fitler: function (href) { //對於wordpress後臺的URL和wp-content裏的URL不使用pjax //if (href.indexOf('/555') || href.indexOf('/666')) { // return true; //} }, callback: function (status) { var type = status.type; switch (type) { case 'success':; break; //正常 case 'cache':; break; //讀取緩存 case 'error':; break; //發生異常 case 'hash':; break; //只是hash變化 } } }); $('#loading').hide(); $('#container').bind('pjax.start', function () { $('#loading').show(); }) $('#container').bind('pjax.end', function () { $('#loading').hide(); }) }) </script> </head> <body> <form id="form1" runat="server"> <div> <br /> <h1>異步我不變,刷新頁面我會變AAAAAAAAAA</h1> <div id="container" style="border: 1px solid red;"> <a href="bbbb.aspx" title="abc">bbb</a> <a href="cccc.aspx" title="abc">ccc</a> <a href="dddd.aspx" title="abc">ddd</a> <br /> <br /> <br /> <br /> 異步,刷新我都變AAAAAAAAAAAA </div> <div id="loading">pjax異步加載中....</div> </div> </form> </body> </html> <%}%>
pjax介紹:ajax
若是你使用chrome或者firefox等瀏覽器訪問本博客、github.com、plus.google.com等網站時,細心的你會發現頁面之間的點擊是經過ajax異步請求的,同時頁面的URL發生了了改變。而且可以很好的支持瀏覽器前進和後退。chrome
是什麼有這麼強大的功能呢?api
HTML5裏引用了新的API,history.pushState和history.replaceState,就是經過這個接口作到無刷新改變頁面URL的。
傳統的ajax有以下的問題:
一、能夠無刷新改變頁面內容,但沒法改變頁面URL
二、爲了更好的可訪問性,內容發生改變後,一般改變URL的hash
三、hash的方式不能很好的處理瀏覽器的前進、後退等問題
四、進而瀏覽器引入了onhashchange的接口,不支持的瀏覽器只能定時去判斷hash是否改變
五、但這種方式對搜索引擎很不友好
六、twitter和google約定了使用#!xxx(即hash第一個字符爲!),搜索引擎進行支持。
爲了解決傳統ajax帶來的問題,HTML5裏引入了新的API,即:history.pushState, history.replaceState
能夠經過pushState和replaceState接口操做瀏覽器歷史,而且改變當前頁面的URL。
pushState是將指定的URL添加到瀏覽器歷史裏,replaceState是將指定的URL替換當前的URL。