akh/bitrix-optimization

Bitrix 网站优化工具

v1.3.0 2023-02-25 22:40 UTC

This package is auto-updated.

Last update: 2024-09-26 02:05:57 UTC


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,则将始终立即加载包含的区域