π A Laravel package that focuses on minimizing payload size of HTML document and optimizing processing on the browser when rendering the web page.
- Package: shinsenter/defer-laravel
- Version: 1.0.3
- Author: Mai Nhut Tan shin@shin.company
- Copyright: 2021 AppSeeds https://code.shin.company/
- License: MIT
- Simplify library options
- Embed defer.js library
- Normalize DOM elements
- Fix missing meta tags
- Fix missing media attributes
- Preconnect to required origins
- Preload key requests
- Prefetch key requests
- Browser-level image lazy-loading for the web
- Lazy-load offscreen and hidden iframes
- Lazy-load offscreen and hidden videos
- Lazy-load offscreen and hidden images
- Lazy-load CSS background images
- Reduce the impact of JavaScript
- Defer non-critical CSS requests
- Defer third-party assets
- Add fallback
<noscript>
tags for lazy-loaded objects - Add custom HTML while browser is rendering the page (splashscreen)
- Attribute to ignore optimizing the element
- Attribute to ignore lazyloading the element
- Optimize AMP document
- Minify HTML output
Require the shinsenter/defer-laravel
package
in your composer.json
and update your dependencies:
composer require shinsenter/defer-laravel
To allow DeferMiddleware
for all of your routes,
add the DeferMiddleware
middleware at the top
of the $middleware
property of app/Http/Kernel.php
class:
protected $middleware = [
\AppSeeds\DeferLaravel\DeferMiddleware::class,
// ...
];
The defaults are set in config/defer-laravel.php
.
Publish the config to copy the file to your own config:
php artisan vendor:publish --tag="defer-laravel"
View the defer-laravel.php config file for more details.
On Lumen, just register the DeferServiceProvider
manually
in your bootstrap/app.php
file:
$app->register(\AppSeeds\DeferLaravel\DeferServiceProvider::class);
Also copy the defer-laravel.php
config file to config/defer-laravel.php
and put it into action:
$app->configure('defer-laravel');
To allow DeferMiddleware
for all your routes,
add the DeferMiddleware
middleware to the global middleware.
$app->middleware([
// ...
\AppSeeds\DeferLaravel\DeferMiddleware::class,
]);
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email shin@shin.company instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.
https://github.com/shinsenter/defer.js/
π₯ A super small, super efficient library that helps you lazy load almost everything like images, video, audio, iframes as well as stylesheets, and JavaScript.
https://github.com/shinsenter/defer.php/
π A PHP library that aims to help you concentrate on web performance optimization.
https://github.com/shinsenter/defer-wordpress/
β‘οΈ A native, blazing fast lazy loader. β Legacy browsers support (IE9+). π― SEO friendly. 𧩠Lazy load almost anything.
From Vietnam π»π³ with love.