问题标签 [page-caching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
38 浏览

memory-management - 如何在 Linux 中保留从 RAM 中逐出的文件支持的可执行页面?

我尝试使用madvise(MADV_DONTNEED)并验证/proc/pid/pagemap该页面未正确映射。尽管页面中的任何功能都没有被访问,但一些页面很快就会映射回来。根据我的阅读,有两个列表 - 活动和非活动。madvise(MADV_DONTNEED)将导致从两个列表中删除页面。如果这是正确的,除了 CPU 访问页面中的地址之外,是否还有其他任何东西可以导致页面被加载回来?对代码的引用将非常有帮助。我的目标是保持页面被驱逐而不是加载回来。

0 投票
2 回答
60 浏览

shopware - 在产品详细信息页面上显示客户特定信息 - 缓存呢?

我们希望在 Shopware 6 的产品详细信息页面上显示客户(实际上是客户组)特定信息。

似乎有 HTTP 缓存,如果特定客户组显示页面,我们担心页面会被缓存,并且信息会泄露给非客户。

这个假设正确吗?

该文档没有透露太多关于此的信息。

有没有办法设置特定的缓存标签,使信息只显示给正确的客户群?

还是我们需要通过 AJAX 动态获取数据?

额外问题:可以在自动测试中模拟 HTTP 缓存以确保功能正常工作吗?

到目前为止我发现了什么:

  • 控制器的is注解@httpCache,似乎控制了一个页面是否被缓存

  • 缓存键是在 中生成的\Shopware\Storefront\Framework\Cache\HttpCacheKeyGenerator::generate。它考虑了完整的请求 URI,以及一些cacheHash被注入的。我相信它不会考虑到客户群

  • 也许这种generate()方法可以修饰,但我不确定这是否是正确的方法。

  • 设置了sw-cache-hash一个影响缓存的 cookie。它考虑到客户。

  • sw-cache-hash在这里创建:

因此,一旦您登录购物车中有一些物品,就会使用不同的缓存哈希。这取决于以下内容,但不取决于它自己的客户群: