NAME
Plack::Middleware::Pjax - PJAX for your Plack
VERSION
version 1.113400
SYNOPSIS
use Plack::Builder;
builder {
enable 'Plack::Middleware::Pjax';
$app
}
DESCRIPTION
Plack::Middleware::Pjax adds easy support for serving chromeless pages in combination with jquery-pjax. For more information on what pjax is, check the SEE ALSO links below.
It does this by filtering the generated response through Marpa::HTML. If the x-pjax http header is set, only the title and InnerHTML of the pjax-container are sent to the client.
Although you take a small processing hit adding an html parsing pass into the response cycle, using Plack::Middleware::Pjax saves you from adding any view specific logic in your plack applications.
See demo/ in the dist directory for a plack port of http://pjax.heroku.com/
Thanks to the authors of rack-pjax, as it is the source of inspiration (also docs and tests) for the creation of this module.
DETAILS
<head>
...
<script src="/javascripts/jquery.js"></script>
<script src="/javascripts/jquery.pjax.js"></script>
<script type="text/javascript">
$(function(){
$('a:not([data-remote]):not([data-behavior]):not([data-skip-pjax])').pjax('[data-pjax-container]')
})
</script>
...
</head>
<body>
<div data-pjax-container>
...
</div>
</body>
Include the above in your applications layout wrapper. When any link is hit with a pushstate enabled browser, Plack::Middleware::Pjax will return a fragment like:
<title>foo</title>
bar baz
SEE ALSO
AUTHOR
Matthew Phillips <mattp@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Matthew Phillips.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.