微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Magento 1 CE中block html cache的讨论

如何解决Magento 1 CE中block html cache的讨论

为了我自己的耻辱,我总是误解缓存的工作原理。

在将每个块渲染为 Mage_Core_Block_Abstract@toHtml 时会使用 _loadCache() 方法检查此缓存。如果这个方法返回 html - 我们很漂亮 - 不需要渲染任何东西。否则 - 流程模板。听起来不错,直到我们进入 _loadCache()。它的字面意思是:

var vidid = "";
var splitstatus = "";
var splitlink = "";

function ceksplit(x) {
  setTimeout(function () {
    axios.get(`https://www.lalal.ai/api/check/?id=${x}`).then((res) => {
      splitstatus = res.data.task.state;
    });
  },30000);
}

function getlink(x) {
  axios.get(`https://www.lalal.ai/api/check/?id=${x}`).then((res) => {
    splitlink = res.data.split.accompaniment;
  });
}

app.post("/uploads",async(req,res) => {
                await ceksplit(vidid);
                console.log("cek 1");

                if (splitstatus === "progress") {
                  await ceksplit(vidid);
                  console.log("cek 2");
                }
                if (splitstatus === "progress") {
                  await ceksplit(vidid);
                  console.log("cek 3");
                }
                if (splitstatus === "progress") {
                  await ceksplit(vidid);
                  console.log("cek 4");
                }
                if (splitstatus === "progress") {
                  await ceksplit(vidid);
                  console.log("cek 5");
                }
                if (splitstatus === "success") {
                  await getlink(vidid);
                  console.log(splitlink);
                }
});

第二部分是检查是否在管理员中启用了缓存。没关系。第一个更有趣 - 它检查为特定块设置的生命周期。我决定使用官方示例数据检查 clean Magento 产品页面上每个块的生命周期,并注意到 80 个块中只有 2 个设置了它们的生命周期。这基本上意味着其余 78 个没有被缓存。

我的问题 - 为什么?我一直很确定大部分块都被缓存了,这是有道理的。而现在我发现它不是。请告诉我,如果我在这方面有任何错误,或者我没有 - 为什么会发生这种情况?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。