1. Go to this page and download the library: Download shinsenter/defer.php library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
shinsenter / defer.php example snippets
// Include the library
from here
// Include the library
ect
$defer = new \AppSeeds\Defer();
// Read HTML source from file
$html_source = file_get_contents('mypage.html');
// Then get the optimized output
$result = $defer->fromHtml($html_source)->toHtml($html);
var_dump($result);
// You can use the same instance to keep loading another HTML and optimize it
$result2 = $defer->fromHtml(file_get_contents('otherpage.html'))->toHtml();
var_dump($result2);
// Include the library
s
$options = [
// Insert debug information inside the output HTML after optimization.
// Debug information will contain outer HTMLs of tags before being optimized.
// Default: false (turn off the debug information)
'debug_mode' => false,
// Although defer.js is the soul of this library,
// in some regions, you may want to serve defer.js library locally
// due to The General Data Protection Regulation (EU).
// See: https://en.wikipedia.org/wiki/General_Data_Protection_Regulation
// If you need to manually insert the defer.js library yourself,
// please enable this option to true.
// Default: false (always automatically insert defer.js library)
'manually_add_deferjs' => false,
// URL to defer.js javascript file.
// Default: https://cdn.jsdelivr.net/npm/@shinsenter/[email protected]/dist/defer_plus.min.js
'deferjs_src' => \AppSeeds\DeferConstant::SRC_DEFERJS_CDN,
// URL to javascript contains fixes.
// for some older browsers that do not support IntersectionObserver feature.
// Default: https://polyfill.io/v3/polyfill.min.js?features=IntersectionObserver
'polyfill_src' => \AppSeeds\DeferConstant::SRC_POLYFILL_CDN,
// Inline the defer.js library to minimize download time in the browser.
// Default: true (always automatically inline defer.js library)
'inline_deferjs' => true,
// ---------------------------------------------------------------------------
// This option moves all stylesheets to bottom of the head tag,
// and moves script tags to bottom of the body tag
// See: https://web.dev/render-blocking-resources/
// Default: true (always automatically fix render blocking)
'fix_render_blocking' => true,
// Turn on optimization for stylesheets
// This option applies to style and link[rel="stylesheet"] tags.
// Best practices: https://web.dev/extract-critical-css/
// Default: true (automatically optimize stylesheets)
'optimize_css' => true,
// Optimize script tags (both inline and external scripts).
// Note: The library only minify for inline script tags.
// See: https://web.dev/unminified-javascript/
// Default: true (automatically optimize script tags)
'optimize_scripts' => true,
// Optimize img, picture, video, audio and source tags.
// See: https://web.dev/browser-level-image-lazy-loading/
// See: https://web.dev/lazy-loading-images/
// Default: true (automatically optimize)
'optimize_images' => true,
// Optimize iframe, frame, embed tags.
// See: https://web.dev/lazy-loading-video/
// Default: true (automatically optimize)
'optimize_iframes' => true,
// Optimize tags that containing CSS for loading images from external sources.
// For example, style properties contain background-image:url() etc.
// See: https://web.dev/optimize-css-background-images-with-media-queries/
// Default: true (automatically optimize)
'optimize_background' => true,
// Create noscript tags so lazy-loaded elements can still display
// even when the browser doesn't have javascript enabled.
// This option applies to all tags that have been lazy-loaded.
// See: https://web.dev/without-javascript/
// Default: true (automatically create fallback noscript tags)
'optimize_fallback' => true,
// Optimize anchor tags, fix unsafe links to cross-origin destinations
// See: https://web.dev/external-anchors-use-rel-noopener/
// Default: true (automatically optimize)
'optimize_anchors' => true,
// Add missing meta tags such as meta[name="viewport"], meta[charset] etc.
// See: https://web.dev/viewport/
// Default: true (automatically optimize)
'add_missing_meta_tags' => true,
// Preconnect to
// Include the library
function
function ob_deferphp($html) {
// Create a Defer object
$defer = new \AppSeeds\Defer([
/* declare options here */
]);
return $defer->fromHtml($html)->toHtml();
}
// Call ob_start() function to create an output buffer
// and pass above callback function name as its argument.
// This function should be called before any other process to print the content.
ob_start('ob_deferphp');
// .......... (place your PHP code here)
// And call this to flush optimized output HTML
// right before you send the final HTML to browser.
ob_end_flush();
bash
composer
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.