【问题标题】:How to remove Magento product details storage in browser?如何在浏览器中删除 Magento 产品详细信息存储?
【发布时间】:2018-06-11 13:37:09
【问题描述】:

Magento 2 中,当我们打开多个产品时,它会将这些产品的数据存储到浏览器本地的 window.localStorage.product_data_storage 中,许多浏览器的数据会自动删除,但在某些浏览器中是不会被删除

我不得不说在这件事发生之前我开了大约 200 种产品,但是 永远不清楚。

当我们清除浏览器缓存时,它正在从浏览器中删除该数据内容,但可以简单理解为最终用户不会每次都去清除他们的缓存,所以我们怎么能从他们的浏览器中删除此内容?

任何帮助将不胜感激

谢谢!

【问题讨论】:

    标签: browser-cache product magento2.2


    【解决方案1】:

    据我了解,当您/任何人打开您的网站以在某些地方使用它们(例如维护knock-out js 在 magento 中,例如在结帐页面、迷你购物车等中。

    这里我创建了一个模块来实现这一点,通过这个模块,您可以管理应该将多少内容存储到浏览器本地存储中。意味着magento会将内容存储到浏览器的本地存储中,但是如果您希望在限制达到10-20时删除数据,无论您希望使用什么单位然后模块将删除内容从浏览器中,magento 将再次开始将数据存储到本地,从 1 个计数到您想要的限制。

    在下面的位置创建一个模块

    Magento_root/app/code/{VendorName}/{ModuleName}

    在适当的给定位置创建以下文件。

    1. registration.php
    2. etc/module.xml
    3. 查看/前端/布局/catalog_product_view.xml
    4. view/frontend/templates/product/view/removelocal.phtml
    5. 查看/前端/web/js/removelocal.js

    这里我不放registration.php & module.xml 的内容,假设你已经理解了。对于这个答案,我使用 VendorName => VendornameModuelName => Removelocal。这是自定义模块的代码。

    catalog_product_view.xml

    <?xml version="1.0"?>
    <page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
        <body>
            <referenceContainer name="content">
                <block class="Magento\Framework\View\Element\Template" name="vendorname.removelocal.content" template="Vendorname_Removelocal::product/view/removelocal.phtml" before="-" />
            </referenceContainer>
        </body>
    </page>
    

    removelocal.phtml

    <div class="swatch-opt" data-role="remov-local-content"></div>
    <script type="text/x-magento-init">
        {
            "[data-role=remov-local-content]": {
                "Vendorname_Removelocal/js/removelocal": {
    
                }
            }
        }
    </script>
    

    removelocal.js

    define([
        'jquery'
    ], function ($){
        'use strict';
        $.widget('mage.removelocal', {
    
            _init: function () {
    
                if(window.localStorage.product_data_storage)
                {
                    var temp = window.localStorage.product_data_storage;
                    var myObject = JSON.parse(window.localStorage.product_data_storage);
                    var count = Object.keys(myObject).length;
    
                    if(count >= 10){
                        window.localStorage.removeItem('product_data_storage');
                    }
                }
            }
        });
        return $.mage.removelocal;
    });
    

    注意:完成后请运行以下命令。

    php bin/magento module:enable Vendorname_Removelocal
    php bin/magento setup:upgrade
    php bin/magento setup:static-content:deploy -f
    php bin/magento cache:flush
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 2017-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多