如何删除浏览器中的 Magento 产品详细信息存储?
How to remove Magento product details storage in browser?
在 Magento 2 中,当我们打开多个产品时,它会将这些产品的数据存储到 window.localStorage.product_data_storage
本地浏览器中,许多浏览器会自动删除数据,但在某些浏览器中它没有被删除
I do have to say I opened about 200 products before this happened, but
it is never clear.
当我们清除浏览器的缓存时,它会从浏览器中删除该数据内容,但简单理解为最终用户不会每次都去清除缓存time so 我们如何从他们的浏览器中删除此内容?
任何帮助将不胜感激
谢谢!
据我所知,当 you/anyone 打开您的网站以便在某些地方使用它们时,您希望从浏览器中删除 Magento 本地存储 的内容到每个浏览器中例如,在 magento 中维护 knock-out js
的组件,例如 结帐页面、迷你购物车等 .
我在这里创建了一个 模块 来实现这一点,使用这个模块,您可以管理应该将多少内容存储到浏览器的本地存储中。意味着 magento 会将内容存储到浏览器的本地存储中,但是如果您希望当限制增加到 10-20 时,无论您希望使用什么单位,都应该删除数据然后模块将从浏览器中删除内容 & magento 将再次开始将数据存储到本地,从 1 计数到您想要的限制。
在以下位置创建模块
Magento_root/app/code/{VendorName}/{ModuleName}
在适当的给定位置创建以下文件。
- registration.php
- etc/module.xml
- view/frontend/layout/catalog_product_view.xml
- view/frontend/templates/product/view/removelocal.phtml
- view/frontend/web/js/removelocal.js
这里就不放registration.php
&module.xml
的内容了,假设大家已经看懂了。对于这个答案,我使用 VendorName => Vendorname & ModuelName => 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;
});
Note: After completing please do run the below command.
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
在 Magento 2 中,当我们打开多个产品时,它会将这些产品的数据存储到 window.localStorage.product_data_storage
本地浏览器中,许多浏览器会自动删除数据,但在某些浏览器中它没有被删除
I do have to say I opened about 200 products before this happened, but it is never clear.
当我们清除浏览器的缓存时,它会从浏览器中删除该数据内容,但简单理解为最终用户不会每次都去清除缓存time so 我们如何从他们的浏览器中删除此内容?
任何帮助将不胜感激
谢谢!
据我所知,当 you/anyone 打开您的网站以便在某些地方使用它们时,您希望从浏览器中删除 Magento 本地存储 的内容到每个浏览器中例如,在 magento 中维护 knock-out js
的组件,例如 结帐页面、迷你购物车等 .
我在这里创建了一个 模块 来实现这一点,使用这个模块,您可以管理应该将多少内容存储到浏览器的本地存储中。意味着 magento 会将内容存储到浏览器的本地存储中,但是如果您希望当限制增加到 10-20 时,无论您希望使用什么单位,都应该删除数据然后模块将从浏览器中删除内容 & magento 将再次开始将数据存储到本地,从 1 计数到您想要的限制。
在以下位置创建模块
Magento_root/app/code/{VendorName}/{ModuleName}
在适当的给定位置创建以下文件。
- registration.php
- etc/module.xml
- view/frontend/layout/catalog_product_view.xml
- view/frontend/templates/product/view/removelocal.phtml
- view/frontend/web/js/removelocal.js
这里就不放registration.php
&module.xml
的内容了,假设大家已经看懂了。对于这个答案,我使用 VendorName => Vendorname & ModuelName => 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;
});
Note: After completing please do run the below command.
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