在我的 Controller 上
[OutputCache(Duration = 60, Location = OutputCacheLocation.Any)]
我有这个属性。在我看来,我有
<div id="hot-topics-replacement" url="@Url.Action("IndexPartial", "Topics")"></div>
这是 JQuery 代码
var url = $("#hot-topics-replacement").attr("url");
$("#hot-topics-replacement").load(url, function () { ResizeHotTopics(); });
它总是向服务器发出请求。我预计它至少会缓存到浏览器(我正在 Chrome 上进行测试),但它没有这样做。
我不知道我的错误在哪里。
编辑已解决
当我检查响应 header 时,我发现上次修改日期和到期日期之间只有 10 秒,而不是 60 秒。现在我将缓存持续时间
设置为 200 秒,它可以工作。
据我了解,服务器和客户端之间的日期时间有些可疑。
最佳答案
没有错误。
我想你的问题是在你的场景中如何使用这个功能。如果您在浏览器中按 F5,客户端缓存就会消失。检查this answer .
无论如何,我建议您检查项目客户端缓存中的任何位置是否已禁用。像这样的东西:
$.ajaxSetup ({
// ...
cache: false
// ...
});
关于javascript - JQuery 加载不从缓存加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36313099/