当像产品这样的东西被修改时,诸如“HTML Block”之类的缓存条目变为“无效”,导致被忽略而不在前端使用。这是有道理的,因为这些数据现在已经过时了。
在通过管理区域手动“刷新”之前,它仍然“无效”。
手动“刷新”后,缓存块的第一个渲染将构建其缓存副本,将追加到此HTML块缓存保留。此块的后续渲染操作将发现此缓存可用,并最终使用它,直到缓存再次“无效”。
为什么这个过程被称为“刷新”,因为它应该像“重置”一样?因为“刷新”意味着它会生成更新的缓存快照,但它只是允许构建缓存条目。
为什么无效数据一旦失效就不会刷新?
这让我质疑我的结论,我是否正确?
答案 0 :(得分:3)
为什么要调用此流程"刷新",因为它应该像" reset"
你对此的一般看法是正确的 - 有些人称之为"刷新"因为虽然您采取的操作会重置缓存,但在工作的Magento系统中,缓存几乎会在您(或其他用户)下次加载页面时立即重建。
为什么无效的数据一旦失效就会刷新?
当缓存无效时,这意味着开发人员处理任何后端功能,使缓存无效,知道他们的操作需要缓存刷新,但该编程缓存控制不足以刷新他们的部分已更改的缓存。
例如,某些块可能会改变产品的价格,这意味着需要刷新任何价格缓存的块。但是,作为后端程序员,无法知道哪些块需要该无效,也无法知道它们存储在哪个缓存系统(块缓存,FPC,清漆)中。还存在商店性能问题 - 如果您正在编辑100个产品,您是否希望Magento在高峰时段重建缓存100次?因此,开发人员不会决定如何处理所有这些,而是将缓存标记为无效。这允许缓存系统采取它认为必要的任何操作。
在一个完美的理论缓存系统中,会运行自动化流程来检测无效的缓存,并知道该做什么以及何时刷新它。这是一个复杂的系统来实现和维护,因此Magento选择简单地通知商店所有者无效的缓存,让他们采取他们认为合适的任何行动。
答案 1 :(得分:0)
默认情况下,默认情况下修改对用户重要的数据时,应发生Magento缓存刷新。例如。订单数据,运输信息等。
这是我在编写软件扩展时所观察到的行为。您可以手动禁用此行为,但默认情况下,动态数据应该是打孔"空洞"通过缓存。