devmatic / laravel-instantclick
An InstantClick middleware for Laravel 5
Installs: 163
Dependents: 0
Suggesters: 0
Security: 0
Stars: 49
Watchers: 6
Forks: 4
Open Issues: 0
Language:JavaScript
Requires
- php: ^5.5.0|^7.0
- illuminate/http: ^5.1
- illuminate/support: ^5.1
- symfony/css-selector: ^2.7|^3.0
- symfony/dom-crawler: ^2.7|^3.0
Requires (Dev)
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
This package is not auto-updated.
Last update: 2024-11-15 18:43:20 UTC
README
InstantClick is a plugin that makes following links in your website instant by leverages ajax to speed up the loading time of your pages.
InstantClick uses pushState and Ajax (a combo known as pjax), replacing only the body and the title in the head.
Devmatic is a web development company aims to make developers life easier. You’ll find an overview of all our projects on our website.
Ajax brings two nice benefits in and of itself:
-
Your browser doesn’t have to throw and recompile scripts and styles on each page change anymore.
-
You don’t get a white flash while your browser is waiting for a page to display, making your website feel faster.
This package provides a middleware that can return the response that this plugin expects.
Video Tutorial & Overview
Installation & Usage
- You can install the package via composer:
$ composer require devmatic/laravel-instantclick
- Next you must add the
\Devmatic\InstantClick\Middleware\FilterIfInstantClick
-middleware to the kernel.
// app/Http/Kernel.php ... protected $middleware = [ ... \Devmatic\InstantClick\Middleware\FilterIfInstantClick::class, ];
- Copy the included instantclick.js to your proper public asset folder then include it at your layout file like this:
<script src="/path/to/instantclick.js" data-no-instant></script> <script data-no-instant>InstantClick.init();</script>
- Please refer to InstantClient documentation to know more about InstantClient options and how it works.
Important Note
please use the included instantclick.js file because I modify it by adding $xhr.setRequestHeader(‘X-INSTANTCLICK’, true) to give the middleware the ability to identify InstantClient requests and give the proper response to it.
How it Works
The provided middleware provides the behaviour that the Instant Click plugin expects of the server:
An X-INSTANTCLICK request header is set to differentiate a InstantClick request from normal XHR requests. In this case, if the request is InstantClick, we skip the layout html and just render the inner contents of the body.
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING for details.
Credits
The middleware in this package was originally written by Freek Van der Herten for return the response that Pjax jquery plugin expects, I edit his middleware and InstantClick plugin to make it work for Laravel. His original code can be found in this repo on GitHub.
License
The MIT License (MIT). Please see License File for more information.