akh / bitrix-optimization
Bitrix 网站优化工具
v1.3.0
2023-02-25 22:40 UTC
Requires
- ext-exif: *
Requires (Dev)
- phpunit/phpunit: ^9.0
README
一套Bitrix网站优化工具
安装
composer require akh/bitrix-optimization
图像优化
脚本可以完成以下两项功能
- 将图像转换为webp格式
- 延迟加载图像lazyload
转换为webp格式需要cwebp库
使用方法
\Akh\BitrixOptimization\Image::initEvents($option = []);
参数
$option = [ 'debug' => false, 'lazy_addJs' => false, 'lazy_addJsBgSupport' => false, 'lazy_active' => true, 'lazy_background' => false, 'lazy_dummy' => 'gif', 'lazy_exclusions' => [ 'lazyload', 'skip-lazy', 'data-no-lazy', 'data-src', 'data-srcset', 'data:image/', 'data-lazyload', 'swiper-lazy' ], 'webp_active' => true, 'webp_exclusions' => [ 'skip-webp' ], 'webp_checkHref' => false, 'webp_checkHrefExclusions' => [ '#', '.css', '.js', '.html', '.svg', '.php', 'mailto:', 'tel:', 'javascript:', 'http://', 'https://', '.ico', ], 'webp_support' => [ IMAGETYPE_JPEG, IMAGETYPE_PNG ], 'webp_folder' => '/upload/webp' ];
通过参数stop_convert=Y
强制停止转换
LazyLoad 内容
延迟加载内容
内容可以在页面加载后立即加载,或者更符合优化的情况,即当用户开始接近区块(滚动位置)时。
此功能非常有用,可以隐藏页面上的部分内容,例如“你看过”、“相关商品”区块。
基于 $APPLICATION->IncludeFile()
实现
使用方法
\Akh\BitrixOptimization\LazyContent::includeFile( $fileDefferPath, $arParams = [], $loadOnScroll = false );
参数
$arParams可以包含特殊参数
'DULL_FILE_PATH' - 占位符文件的路径
'DATA_OFFSET_LOAD' - 内容开始加载的px距离(默认=600)
事件
区域加载完成后,将触发js事件lazycontentloaded
,可以用于初始化脚本
document.addEventListener('lazycontentloaded', function () { //some script });
调试
作为管理员登录后,如果$_GET参数为include_lazy_content=Y
,则将始终立即加载包含的区域