pjax實例demo(c#,iis)

 

 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>
<%}%>
View Code

 

 

pjax介紹:ajax

表現

若是你使用chrome或者firefox等瀏覽器訪問本博客、github.complus.google.com等網站時,細心的你會發現頁面之間的點擊是經過ajax異步請求的,同時頁面的URL發生了了改變。而且可以很好的支持瀏覽器前進和後退。chrome

是什麼有這麼強大的功能呢?api

HTML5裏引用了新的API,history.pushState和history.replaceState,就是經過這個接口作到無刷新改變頁面URL的。

 

與傳統的AJAX的區別

傳統的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。

相關文章
相關標籤/搜索