src/cm/media/js/lib/yui/yui_3.10.3/docs/pjax/index.html
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
<!DOCTYPE html>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
<html lang="en">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
<head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
    <meta charset="utf-8">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
    <title>Pjax</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <link rel="stylesheet" href="../assets/css/main.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
<body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
<!--
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
<div id="doc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    <div id="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
        <a href="#toc" class="jump">Jump to Table of Contents</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
            <h1>Pjax</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
                <div class="content"><div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
<a href="http://pjax.heroku.com/">Pjax</a> is a technique that allows you to progressively enhance normal links on a page so that clicks result in the linked content being loaded via Ajax and the URL being updated using HTML5 <code>pushState</code>, avoiding a full page load. In browsers that don't support <code>pushState</code> or that have JavaScript disabled, link clicks will result in a normal full page load. The Pjax Utility makes it easy to add this functionality to existing pages.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
<h2 id="getting-started">Getting Started</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
To include the source files for Pjax and its dependencies, first load
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
the YUI seed file if you haven't already loaded it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
<pre class="code prettyprint">&lt;script src=&quot;http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.10.3&#x2F;build&#x2F;yui&#x2F;yui-min.js&quot;&gt;&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
Next, create a new YUI instance for your application and populate it with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
modules you need by specifying them as arguments to the <code>YUI().use()</code> method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
YUI will automatically load any dependencies required by the modules you
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
specify.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
<pre class="code prettyprint">&lt;script&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
&#x2F;&#x2F; Create a new YUI instance and populate it with the required modules.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
YUI().use(&#x27;pjax&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
    &#x2F;&#x2F; Pjax is available and ready for use. Add implementation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
    &#x2F;&#x2F; code here.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
For more information on creating YUI instances and on the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
<a href="http://yuilibrary.com/yui/docs/api/classes/YUI.html#method_use"><code>use()</code> method</a>, see the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
documentation for the <a href="../yui/index.html">YUI Global Object</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
<h2 id="using-pjax">Using Pjax</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
<h3 id="quick-start">Quick Start</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
It's easy to add pjax functionality to any page with just a few lines of code. You don't even need any special server-side logic. Here's a simple example:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
<pre class="code prettyprint">&lt;h1&gt;Links&lt;&#x2F;h1&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
&lt;ol&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
    &lt;li&gt;&lt;a href=&quot;page1.html&quot; class=&quot;yui3-pjax&quot;&gt;Page One&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
    &lt;li&gt;&lt;a href=&quot;page2.html&quot; class=&quot;yui3-pjax&quot;&gt;Page Two&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
    &lt;li&gt;&lt;a href=&quot;page3.html&quot; class=&quot;yui3-pjax&quot;&gt;Page Three&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
&lt;&#x2F;ol&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
&lt;div id=&quot;content&quot;&gt;&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
&lt;script src=&quot;http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.10.3&#x2F;build&#x2F;yui&#x2F;yui-min.js&quot;&gt;&lt;&#x2F;script&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
&lt;script&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
YUI().use(&#x27;pjax&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
    new Y.Pjax({container: &#x27;#content&#x27;});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
This creates a new Pjax instance that, by default, listens for clicks on any
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
link on the page that has a <code>yui3-pjax</code> class. When a <code>yui3-pjax</code> link is clicked, its URL will be loaded via Ajax and the loaded content will be inserted into the <code>#content</code> div, replacing its existing contents. If the loaded page includes an HTML <code>&lt;title&gt;</code> element, the current page's title will also be replaced with the new title.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
One important thing to note is that since Pjax uses <a href="https://developer.mozilla.org/en/XMLHttpRequest"><code>XMLHttpRequest</code></a> under the hood, it can only load URLs from the <a href="https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript">same origin</a> as the current page. This means the link URL must share the same protocol, port, and host as the current page. Pjax will ignore URLs it can't load, resulting in a full page load for those URLs.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
<h3 id="instantiating-pjax">Instantiating Pjax</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
There are two ways to instantiate the Pjax Utility: you can load the <code>pjax-plugin</code> module and use the <code>Y.Plugin.Pjax</code> Node plugin, or you can load the <code>pjax</code> module and create a standalone instance of the <code>Y.Pjax</code> class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
Both instantiation methods provide the same core functionality; they only differ in how they're instantiated. Feel free to use whichever one you prefer.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
<h4 id="as-a-plugin">As a Plugin</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
To instantiate Pjax as a plugin, load the <code>pjax-plugin</code> module and then plug the <code>Y.Plugin.Pjax</code> class into a Node instance. The node will be used as the container element, and content loaded via Pjax will replace the contents of the node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
<pre class="code prettyprint">YUI().use(&#x27;pjax-plugin&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
    Y.one(&#x27;#content&#x27;).plug(Y.Plugin.Pjax);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
You may optionally pass configuration attributes as the second argument to <code>plug()</code>:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
<pre class="code prettyprint">Y.one(&#x27;#content&#x27;).plug(Y.Plugin.Pjax, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
    linkSelector: &#x27;a.pjax&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
    timeout     : 10000
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
<h4 id="as-a-class">As a Class</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
To instantiate Pjax as a class, load the <code>pjax</code> module and then create a new instance of <code>Y.Pjax</code>, specifying the node you want to use as a content container. You may optionally provide additional configuration attributes as well.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
<pre class="code prettyprint">YUI().use(&#x27;pjax&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
    new Y.Pjax({container: &#x27;#content&#x27;});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
<h3 id="configuring-pjax">Configuring Pjax</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
All configuration attributes are optional, although you'll usually want to at least specify a <code>container</code> node if you aren't using the Pjax plugin.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
<h4 id="config-attributes">Config Attributes</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
    <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
            <th>Attribute</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
            <th>Type</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
            <th>Default</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
            <th>Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
    </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
    <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
            <td><code>addPjaxParam</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
            <td>Boolean</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
            <td><code>true</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
                If <code>true</code>, a "pjax=1" query parameter will be appended to all URLs requested via Pjax.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
                Browsers ignore HTTP request headers when caching content, so if the same URL is used to request a partial Pjax page and a full page, the browser will cache them under the same key and may later load the cached partial page when the user actually requests a full page (or vice versa).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
                To prevent this, we can add a bogus query parameter to the URL so that Pjax URLs will always be cached separately from non-Pjax URLs.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
            <td><code>container</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
            <td>Node</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
            <td><code>null</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
                Node into which content should be inserted when a page is loaded via Pjax. This node's existing contents will be removed to make way for the new content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
                If not set, loaded content will not be automatically inserted into the page.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
            <td><code>contentSelector</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
            <td>String</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
            <td><code>null</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
                CSS selector used to extract a specific portion of the content of a page loaded via Pjax.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
                For example, if you wanted to load the page <code>example.html</code> but only use the content within an element with the id "pjax-content", you'd set
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
                <code>contentSelector</code> to "#pjax-content".
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
                If not set, the entire page will be used.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
            <td><code>linkSelector</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
            <td>String</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
            <td style="white-space:nowrap;"><code>&quot;a.yui3-pjax&quot;</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
                CSS selector string used to filter link click events so that only the links which match it will have the enhanced navigation behavior of Pjax applied.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
                When a link is clicked and that link matches this selector, Pjax will attempt to load it via Ajax. If HTML5 history is not supported, or if the link was middle-clicked, right-clicked, or clicked while a modifier key was pressed, the link click will be handled by the browser just like any old link.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
            <td><code>navigateOnHash</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
            <td>Boolean</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
            <td><code>false</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
                Whether navigating to a hash-fragment identifier on the current page should be enhanced and cause the <code>navigate</code> event to fire.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
                By default Pjax allows the browser to perform its default action when a user is navigating within a page by clicking in-page links (e.g. <code>&lt;a href=&quot;#top&quot;&gt;Top of page&lt;&#x2F;a&gt;</code>) and does not attempt to interfere or enhance in-page navigation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
            <td><code>scrollToTop</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
            <td>Boolean</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
            <td><code>true</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
                Whether the page should be scrolled to the top after navigating to a URL.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
                When the user clicks the browser's back button, the previous scroll position will be maintained.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
            <td><code>timeout</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
            <td>Number</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
            <td>30000</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
                Time in milliseconds after which an Ajax request should time out. When a timeout occurs, the <code>error</code> event will be fired.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
            <td><code>titleSelector</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
            <td>String</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
            <td><code>&quot;title&quot;</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
                CSS selector used to extract a page title from the content of a page loaded via Pjax.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
                By default this is set to extract the title from the <code>&lt;title&gt;</code> element, but you could customize it to extract the title from an <code>&lt;h1&gt;</code>, or from any other element, if that's more appropriate for the content you're loading.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
    </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
<h4 id="custom-selectors">Custom Selectors</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
Pjax's <code>contentSelector</code> and <code>titleSelector</code> config attributes allow you to customize how content and page titles are extracted from loaded pages, while the <code>linkSelector</code> attribute lets you customize which links on the page are loaded via Pjax.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
<h5 id="contentselector"><code>contentSelector</code></h5>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
By default, <code>contentSelector</code> is <code>null</code>, meaning that the entire contents of any loaded page will be inserted into the container node. This could be bad if the page includes a header and footer that shouldn't be displayed again. Specify a custom <code>contentSelector</code> to display only a portion of the loaded page.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
Let's say we have an HTML page that looks like this:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
<pre class="code prettyprint">&lt;!DOCTYPE html&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
&lt;title&gt;The Surprising Adventures of Sir Digby Chicken Caesar - Episode 1&lt;&#x2F;title&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
&lt;body&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
    &lt;div class=&quot;header&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
        &lt;img src=&quot;header.jpg&quot; alt=&quot;Sir Digby and his companion Ginger&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
        &lt;h1&gt;The Surprising Adventures of Sir Digby Chicken Caesar&lt;&#x2F;h1&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
    &lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
    &lt;div class=&quot;episode-content&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
        &lt;h2&gt;Episode One&lt;&#x2F;h2&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
        &lt;p&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
        On a lonely planet spinning its way toward damnation amid the fear and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
        despair of a broken human race, who is left to fight for all that is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
        good and pure and gets you smashed for under a fiver? Yes, it&#x27;s the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
        surprising adventures of me, Sir Digby Chicken Caesar!
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
        &lt;&#x2F;p&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
    &lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
    &lt;div class=&quot;footer&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
        &lt;p&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
        Copyright (c) 2012 Digby Enterprises.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
        &lt;&#x2F;p&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
    &lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
&lt;&#x2F;body&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
Since the header and footer are persistent across the site, we only want to display the content portion when this page is loaded via Pjax. All we need to do is set the <code>contentSelector</code> attribute to the appropriate CSS selector:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
<pre class="code prettyprint">&#x2F;&#x2F; Extract the contents of the &#x27;.episode-content&#x27; div from loaded pages and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
&#x2F;&#x2F; discard the rest.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
new Y.Pjax({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
    container      : &#x27;#content&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
    contentSelector: &#x27;.episode-content&#x27;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
<h5 id="linkselector"><code>linkSelector</code></h5>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
The <code>linkSelector</code> attribute allows you to customize which links Pjax will handle. By default, <code>linkSelector</code> is set to "a.yui3-pjax", which means that any <code>&lt;a&gt;</code> element with the class name "yui3-pjax" will be handled by Pjax. You could customize this to change the class name, or to limit Pjax to links inside a certain container, or anything else you can do with a CSS selector.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
<h5 id="titleselector"><code>titleSelector</code></h5>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
The <code>titleSelector</code> attribute allows you to customize how Pjax extracts a page title from loaded pages. By default, it's set to the selector string "title", which means it will extract the contents of the first <code>&lt;title&gt;</code> element on the loaded page. If desired, you could customize this selector to extract the title from an <code>&lt;h1&gt;</code> element, or any other element, or set it to <code>null</code> to prevent a title from being extracted.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
<h3 id="pjax-events">Pjax Events</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
    <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
            <th>Event</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
            <th>Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
            <th>Payload</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
    </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
    <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
            <td><code>error</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
                Fired when an error occurs while attempting to load a URL.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
                <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
                    <dt><code>content</code> <em>(Object)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
                    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
                        <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
                        Content extracted from the response, if any. This is an object with the following properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
                        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
                        <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
                            <dt><code>node</code> <em>(Node)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
                            <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
                                A <code>Y.Node</code> instance for a document fragment containing the extracted HTML content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
                            </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
                            <dt><code>title</code> <em>(String)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
                            <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
                                The title of the HTML page, if any, extracted using the <code>titleSelector</code> attribute. If <code>titleSelector</code> is not set or if a title could not be found, this property will be <code>undefined</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
                            </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
                        </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
                    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
                    <dt><code>responseText</code> <em>(String)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
                    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
                        Raw Ajax response text.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
                    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
                    <dt><code>status</code> <em>(Number)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
                    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
                        HTTP status code for the Ajax response.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
                    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
                    <dt><code>url</code> <em>(String)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
                    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
                        The absolute URL that failed to load.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
                    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
                </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
            <td><code>load</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
                Fired when a URL is successfully loaded.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
                <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
                    <dt><code>content</code> <em>(Object)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
                    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
                        <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
                        Content extracted from the response, if any. This is an object with the following properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
                        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
                        <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
                            <dt><code>node</code> <em>(Node)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
                            <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
                                A <code>Y.Node</code> instance for a document fragment containing the extracted HTML content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
                            </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
                            <dt><code>title</code> <em>(String)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
                            <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
                                The title of the HTML page, if any, extracted using the <code>titleSelector</code> attribute. If <code>titleSelector</code> is not set or if a title could not be found, this property will be <code>undefined</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
                            </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
                        </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
                    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
                    <dt><code>responseText</code> <em>(String)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
                    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
                        Raw Ajax response text.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
                    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
                    <dt><code>status</code> <em>(Number)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
                    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
                        HTTP status code for the Ajax response.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
                    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
                    <dt><code>url</code> <em>(String)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
                    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
                        The absolute URL that was loaded.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
                    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
                </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
        <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
            <td><code>navigate</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
                <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
                Fired when navigating to a URL via Pjax. This is a useful event to listen to if you want to add a visual loading indicator while content is loading.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
                </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
            <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
                <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
                    <dt><code>force</code> <em>(Boolean)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
                    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
                        <code>true</code> if enhanced navigation should occur even in browsers that don't support HTML5 history.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
                    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
                    <dt><code>originEvent</code> <em>(Event)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
                    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
                        The event that triggered navigation. Usually this will be a DOM click event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
                    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
                    <dt><code>replace</code> <em>(Boolean)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
                    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
                        <code>true</code> if the current history entry will be replaced instead of a new entry being created.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
                    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
                    <dt><code>url</code> <em>(String)</em></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
                    <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
                        The URL being navigated to.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
                    </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
                </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
            </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
        </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
    </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
<h2 id="customizing-pjax">Customizing Pjax</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
There are many situations where more advanced uses of the Pjax Utility need to customize its default behavior. Adding analytics, changing how content is added to the page, performing some operation before or after the standard behavior, etc. are all cases where Pjax needs to be customized. Fortunately, the hooks are in place to aid customization.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
<h3 id="enhancing-navigation-with-pjax-events">Enhancing Navigation with Pjax Events</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
One way to enhance the experience for people moving between "pages" of your site or app, is to add a loading indicator while the contents of the page are being loaded from the server via the Pjax utility. This may be especially important for pages which have dynamic content and might take a little while to generate on the server.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
The follow provides a basic example of how to add a loading indicator using the <a href="#pjax-events">Pjax's events</a>:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
<pre class="code prettyprint lang-javascript">var pjax = new Y.Pjax({container: &#x27;#content&#x27;});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
&#x2F;&#x2F; Listen for the &#x60;navigate&#x60; event and add the &quot;loading&quot; CSS class. The styles
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
&#x2F;&#x2F; for the this CSS class can add a loading spinner or dim the container node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
pjax.on(&#x27;navigate&#x27;, function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
    this.get(&#x27;container&#x27;).addClass(&#x27;loading&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
&#x2F;&#x2F; Listen for either the &#x60;load&#x60; or &#x60;error&#x60; events and remove the &quot;loading&quot; CSS
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
&#x2F;&#x2F; class from the container node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
pjax.on([&#x27;error&#x27;, &#x27;load&#x27;], function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
    this.get(&#x27;container&#x27;).removeClass(&#x27;loading&#x27;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
If you're looking to page transitions to your application, you might want to look at the <a href="../app/index.html#yapptransitions">App component</a> which builds on the Pjax utility and supports transitions.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
<h3 id="using-specific-routes">Using Specific Routes</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
By default, any link within a pjax's <code>container</code>—when clicked—will be handled via pjax and the content at the link's URL will be loaded and dynamically inserted into the page without a full page load. Sometimes you might need to be more restrictive, you may want only certain portions of your site to be pjax-ified.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
The Pjax utility is build on the <a href="../router/index.html">Router component</a>, this mean that a pjax instance is a router. By specifying a value for the <a href="http://yuilibrary.com/yui/docs/api/classes/Pjax.html#attr_routes"><code>routes</code> attribute</a>, you can customize which URL paths you want the Pjax utility to handle. The Pjax utility also provides <a href="http://yuilibrary.com/yui/docs/api/classes/Pjax.html#property_defaultRoute"><code>Y.Pjax.defaultRoute</code></a>, a stack of route middleware which forms the default Pjax route handler.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
The following specifies the routes which the Pjax utility should handle, and uses Pjax's default route handler to load the content from the server and dynamically insert it into the page:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
<pre class="code prettyprint lang-javascript">new Y.Pjax({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
    container: &#x27;#content&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
    &#x2F;&#x2F; This tells the Pjax utility to only handle the About Us and Contact Us
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
    &#x2F;&#x2F; sections of our site by using the default route handler.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
    routes: [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
        {path: &#x27;&#x2F;about&#x27;,   callbacks: Y.Pjax.defaultRoute},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
        {path: &#x27;&#x2F;contact&#x27;, callbacks: Y.Pjax.defaultRoute}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
    ]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
See the <a href="../router/index.html#routing">Routing</a> section of Router's user guide for more information.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
<h3 id="adding-analytics-support">Adding Analytics Support</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
One issue people will quickly run into when using the Pjax utility is needing to report page views to their web analytics system. Even though Pjax removes unnecessary full page loads, we still want to track page views for the content it loads.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
There are several hooks available for tracking page views for content which is loaded via pjax. You could listen to the <code>load</code> and <code>error</code> events, or specify the <code>routes</code> by providing an additional route-specific middleware, but there's a simpler way… Most likely you want your web analytics to track page views for all pages loaded through all pjax instances on the page. The most straight-forward way is to <code>push()</code> additional middleware on to Pjax's <a href="http://yuilibrary.com/yui/docs/api/classes/Pjax.html#property_defaultRoute"><code>defaultRoute</code></a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
The following shows how you can hook into <a href="http://www.google.com/analytics/">Google Analytics</a>, and track page views for all pages that are handled via the Pjax utility:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
<pre class="code prettyprint lang-javascript">&#x2F;&#x2F; This assumes you already have Google Analytics on the page.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
&#x2F;&#x2F; Define the a middleware function which will track page views with GA.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
function trackPageview(req, res, next) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
    if (Y.config.win._gaq) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
        _gaq.push([&#x27;_trackPageview&#x27;, res.url]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
    next();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
&#x2F;&#x2F; Push our &#x60;trackPageview()&#x60; middleware onto Pjax&#x27;s &#x60;defaultRoute&#x60;.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
Y.Pjax.defaultRoute.push(trackPageview);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
&#x2F;&#x2F; Now any pjax instance we create on this page will automatically have
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
&#x2F;&#x2F; page views tracked via Google Analytics.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
new Y.Pjax({container: &#x27;#content&#x27;});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
See the <a href="../router/index.html#chaining-routes-and-middleware">Chaining Routes and Middleware</a> section of Router's user guide for more information.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
<h2 id="optimizing-server-responses-for-pjax">Optimizing Server Responses for Pjax</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
While the Pjax Utility is capable of extracting and displaying small portions of loaded pages, it's much more efficient to avoid sending unnecessary content in the first place. With a little extra work on the server side, you can have the server recognize Pjax requests and send back only the relevant portion of the requested page.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
<h3 id="x-pjax-http-header"><code>X-PJAX</code> HTTP Header</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
When the Pjax Utility makes an Ajax request to the server, it adds a special <code>X-PJAX</code> HTTP header to the request. You can check for the presence of this header on the server when handling the request to determine whether you should respond with a full page or a partial page.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
A complete HTTP request generated by the Pjax Utility looks something like this:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
<pre class="code">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
GET /example.html?pjax=1 HTTP/1.1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
Host: example.com
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
X-Requested-With: XMLHttpRequest
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
X-PJAX: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
Accept: */*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
Referer: http://example.com/index.html
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
Accept-Encoding: gzip,deflate,sdch
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
Accept-Language: en-US,en;q=0.8
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
<h3 id="pjax-query-parameter"><code>pjax</code> Query Parameter</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
When the <code>addPjaxParam</code> config attribute is <code>true</code> (the default), the Pjax Utility will add a <code>pjax=1</code> query parameter to the end of all URLs it requests. This serves two purposes:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
<ol>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
        It provides an alternative to the <code>X-PJAX</code> HTTP header for determining whether a request was generated by the Pjax Utility.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
        It ensures that the browser caches Pjax responses separately from full page responses.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
</ol>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
<h2 id="known-issues">Known Issues</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
    <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
        <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
        Pjax's partial page loads only work in browsers that support HTML5 history (most modern browsers do). In older browsers such as IE6 through IE9, pjax-enabled links will result in full page loads. This is by design, since it allows you to take advantage of the functionality supported by modern browsers while providing a graceful fallback for older browsers.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
        </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
    </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
                    <div id="toc" class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
                            <h2 class="no-toc">Table of Contents</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   665
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   666
                            <ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   667
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   668
<a href="#getting-started">Getting Started</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   669
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   670
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   671
<a href="#using-pjax">Using Pjax</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   672
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   673
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   674
<a href="#quick-start">Quick Start</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   675
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   676
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   677
<a href="#instantiating-pjax">Instantiating Pjax</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   678
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   679
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   680
<a href="#as-a-plugin">As a Plugin</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   681
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   682
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   683
<a href="#as-a-class">As a Class</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   684
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   685
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   686
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   687
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   688
<a href="#configuring-pjax">Configuring Pjax</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   689
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   690
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   691
<a href="#config-attributes">Config Attributes</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   692
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   693
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   694
<a href="#custom-selectors">Custom Selectors</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   695
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   696
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   697
<a href="#contentselector"><code>contentSelector</code></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   698
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   699
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   700
<a href="#linkselector"><code>linkSelector</code></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   701
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   702
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   703
<a href="#titleselector"><code>titleSelector</code></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   704
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   705
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   706
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   707
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   708
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   709
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   710
<a href="#pjax-events">Pjax Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   711
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   712
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   713
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   714
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   715
<a href="#customizing-pjax">Customizing Pjax</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   716
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   717
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   718
<a href="#enhancing-navigation-with-pjax-events">Enhancing Navigation with Pjax Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   719
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   720
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   721
<a href="#using-specific-routes">Using Specific Routes</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   722
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   723
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   724
<a href="#adding-analytics-support">Adding Analytics Support</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   725
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   726
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   727
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   728
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   729
<a href="#optimizing-server-responses-for-pjax">Optimizing Server Responses for Pjax</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   730
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   731
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   732
<a href="#x-pjax-http-header"><code>X-PJAX</code> HTTP Header</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   733
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   734
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   735
<a href="#pjax-query-parameter"><code>pjax</code> Query Parameter</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   736
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   737
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   738
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   739
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   740
<a href="#known-issues">Known Issues</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   741
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   742
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   743
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   744
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   745
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   746
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   747
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   748
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   749
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   750
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   751
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   752
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   753
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   754
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   755
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   756
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   757
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   758
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   759
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   760
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   761
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   762
    assets: '../assets/pjax',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   763
    name: 'pjax',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   764
    title: 'Pjax',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   765
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   766
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   767
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   768
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   769
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   770
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   771
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   772
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   773
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   774
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   775
</html>