NAME Plack::Middleware::Pjax - PJAX for your Plack VERSION version 1.114400 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::R2::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 <http://caniuse.com/#search=pushstate/> enabled browser, Plack::Middleware::Pjax will return a fragment like: <title>foo</title> bar baz SEE ALSO * <https://github.com/eval/rack-pjax> * Marpa::R2::HTML * <http://pjax.heroku.com/> * <https://github.com/defunkt/jquery-pjax> AUTHOR Matthew Phillips <mattp@cpan.org> COPYRIGHT AND LICENSE This software is copyright (c) 2015 by Matthew Phillips <mattp@cpan.org>. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.