hryvinskyi / magento2-deferjs
未提供
1.2.2
2021-12-07 23:07 UTC
Requires
- php: ~7.1.3||~7.2.0||~7.3.0||~7.4.0||~8.0
- hryvinskyi/magento2-base: ~2.1.0
- magento/framework: *
- magento/module-store: *
Requires (Dev)
- phpunit/phpunit: ~6.5.0
README
该模块将javascript移动到页面底部。
安装指南
通过composer安装
composer require hryvinskyi/magento2-deferjs
bin/magento module:enable Hryvinskyi_Base
bin/magento module:enable Hryvinskyi_DeferJs
bin/magento setup:upgrade
下载安装包
- 下载模块 https://github.com/hryvinskyi/magento2-base "克隆或下载 -> 下载Zip"
- 下载此模块 "克隆或下载 -> 下载Zip"
- 解压两个模块到文件夹app\code\Hryvinskyi\Base和app\code\Hryvinskyi\DeferJs
- 运行命令
bin/magento module:enable Hryvinskyi_Base
bin/magento module:enable Hryvinskyi_DeferJs
bin/magento setup:upgrade
- 在管理面板中配置模块
常规设置
要获取访问“延迟JavaScript”设置的权限,请转到商店 -> 配置 -> Hryvinskyi 扩展 -> 延迟JavaScript,并展开常规设置部分。
启用延迟javascript: 从这里启用或禁用扩展。
禁用移动属性: 输入将阻止脚本移动到底部的属性。
启用minify body scripts: 启用脚本压缩。
特性
-
能够跳过在管理面板中设置的特定标签的javascript
-
内置跳过移动Google标签管理器(如果您使用第三方模块且无法添加特定标签)
-
通过控制器从延迟解析中排除JavaScript。
控制器不会受延迟js的影响。使用方式:[模块][控制器][操作](例如:cms_index_index)
-
通过商店路径从延迟解析中排除JavaScript。
路径不会受延迟js的影响。使用方式:/women/tops-women/jackets-women.html
-
通过URL模式从延迟解析中排除JavaScript。
URL模式可以是完整的操作名称或请求路径。允许通配符。例如
*cell-phones* *cell-phones/nokia-2610-phone.html customer_account_* /customer/account/* *?mode=list
-
移动的javascript压缩
-
优化text/x-magento-init脚本
-
能够通过您的验证器扩展模块
-
渲染时间增加可以提高Google页面速度评分。
添加自定义验证器
要添加您的验证器
-
创建验证器文件
app/code/Vendor/Module/Model/PassesValidator/Validators/YourValidator.php
<?php declare(strict_types=1); namespace Vendor\Module\Model\PassesValidator\Validators; use Hryvinskyi\DeferJs\Model\PassesValidator\ValidatorInterface; use Magento\Framework\App\Response\Http; /** * Class YourValidator */ class YourValidator implements ValidatorInterface { /** * Validator function, handle javascript or not * * @param string $script * @param Http $http * * @return bool */ public function validate(string $script, Http $http): bool { // Your code validate } }
-
创建依赖注入文件
app/code/Vendor/Module/etc/frontend/di.xml
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <virtualType name="deferJsPassesValidators"> <arguments> <argument name="entityTypes" xsi:type="array"> <item name="yourValidationName" xsi:type="object">Vendor\Module\Model\PassesValidator\Validators\YourValidator</item> </argument> </arguments> </virtualType> </config>
-
运行命令
php bin/magento setup:di:compile