如何解决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 举报,一经查实,本站将立刻删除。