shinsenter / defer-laravel
🚀 A Laravel package that focuses on minimizing payload size of HTML document and optimizing processing on the browser when rendering the web page.
Fund package maintenance!
shinsenter/defer-laravel/stargazers
Paypal
Patreon
Installs: 4 388
Dependents: 0
Suggesters: 0
Security: 0
Stars: 19
Watchers: 4
Forks: 2
Open Issues: 0
Requires
- php: >=5.6
- illuminate/contracts: >=5
- illuminate/support: >=5
- shinsenter/defer.php: ^2.4
- symfony/http-foundation: >=2
- symfony/http-kernel: >=2
Requires (Dev)
- laravel/framework: >=5
Suggests
- ext-mbstring: *
This package is auto-updated.
Last update: 2024-09-25 14:03:54 UTC
README
🚀 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
Features
- 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
Installation
Require the shinsenter/defer-laravel
package
in your composer.json
and update your dependencies:
composer require shinsenter/defer-laravel
Global usage
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, // ... ];
Configuration
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"
Options
View the defer-laravel.php config file for more details.
Lumen
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');
Global usage for Lumen
To allow DeferMiddleware
for all your routes,
add the DeferMiddleware
middleware to the global middleware.
$app->middleware([ // ... \AppSeeds\DeferLaravel\DeferMiddleware::class, ]);
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email shin@shin.company instead of using the issue tracker.
License
The MIT License (MIT). Please see License File for more information.
My works
Defer.js
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.
defer.php
https://github.com/shinsenter/defer.php/
🚀 A PHP library that aims to help you concentrate on web performance optimization.
Wordpress plugin
https://github.com/shinsenter/defer-wordpress/
⚡️ A native, blazing fast lazy loader. ✅ Legacy browsers support (IE9+). 💯 SEO friendly. 🧩 Lazy load almost anything.
Support my activities
From Vietnam 🇻🇳 with love.