【问题标题】:cache issue on shopify appshopify应用程序上的缓存问题
【发布时间】:2018-06-22 13:40:13
【问题描述】:

我们正在开发一个应用程序,它将在产品详细信息页面上显示一个按钮来执行一些操作。我们使用 product.metaifields 根据条件显示相同的内容。所以基本上按钮显示会根据元字段值进行切换。

我们面临的问题是,从管理部分激活该功能,然后除非我们在浏览器上进行硬刷新,否则该按钮将不会显示在用户端。这里发生的是 Shopify 缓存元字段值,因此条件检查将不起作用。 当我们对应用执行某些操作时,有什么方法可以删除页面缓存?

【问题讨论】:

    标签: shopify shopify-app page-caching shopify-template


    【解决方案1】:

    当您在 Shopify 中呈现页面时,它会呈现所有内容,包括您在呈现时可能访问的元字段资源值。元字段值没有特殊的缓存。如果您在面向客户端的页面上呈现元字段“AAA”,请使用应用程序或管理员将元字段更改为“BBB”,则不会向已呈现的页面发出重绘任何内容的信号。

    如果您想要动态行为,例如使用基于元字段资源的值呈现按钮,您将不得不对 App 进行回调,获取新内容并更新 DOM,或者使用推送策略,例如WSS:// 保持通道对监控这些事情的后端开放。

    总而言之,您的问题不是缓存数据之一,而是您正在呈现非动态值并期望您的用户体验是动态的这一事实。

    【讨论】:

    • 这真的很有帮助。我真正想要实现的是从后端激活我的插件并在产品详细信息页面中显示一个基于该按钮的按钮。在不遇到我上面提到的问题的情况下,最好的方法是什么?
    • 页面加载后使用 App Proxy 模式调用您的应用,然后在 DOM 中您想要的位置呈现按钮...这样您就可以访问产品元字段值。
    • 我目前面临的是显示一个基于 product.metafield 值为 1 的按钮,并在值为 0 时将其删除。目前,当我在后端启用应用程序配置时,值为 1 需要硬刷新(ctrl+f5 或清除浏览器上的缓存)才能将此 1 反映为用户端的元字段值(准确地说是在产品详细信息页面上)。我该如何解决这个问题?
    • 我已经告诉过你了。使用 App Proxy 处理 JS 回调。
    猜你喜欢
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 2021-02-26
    • 1970-01-01
    • 2013-09-27
    • 2020-08-19
    • 2011-04-28
    相关资源
    最近更新 更多