gpt4 book ai didi

c# - IE 缓存从服务器返回的旧数据

转载 作者:行者123 更新时间:2023-12-01 02:59:37 25 4
gpt4 key购买 nike

我有一个Wijmo Tree在 ASP.NET MVC View 上。每个树节点的检查状态都保存在我的数据库中。加载树时,根据返回的数据检查或取消检查每个节点。当 nodeCheckChanged在树上被调用,我使用 ajax 在我的 Controller 上调用一个操作,该操作成功地更改了我的数据。

当我重新加载 TreeView 时出现问题。数据已保存到数据库中,但浏览器未从服务器获取最新数据。

我只在 IE 所有版本中遇到这个问题。 Firefox 和 Chrome 每次都能工作。

我看过类似 this 的页面来自 DotNetPerls,this来自 Microsoft,并在 this 上尝试了选项四堆栈溢出答案。

我发现在 IE 中获取最新数据的唯一方法是将选项“开发人员工具”->“缓存”->“始终从服务器刷新”设置为 true。

我需要做什么才能让 IE 像其他浏览器一样重新加载我的数据?

感谢大家花时间阅读这个问题!

编辑

我的树的数据来 self 的模型的集合。该集合由一个操作填充。

我的行动:

public ActionResult List(AssignedFolderListModel model)
{
//Using EntityFramework
model.TopLevelFolders = db.Folders;
return PartialView(model);
}

我的模型:

public class AssignedFolderListModel
{
public string UserId { get; set; }
public IEnumerable<Folder> TopLevelFolders { get; set; }
public Guid[] AssignedFolderIds { get; set; }
}

回答

我需要将“cache: false”添加到我的 $.ajax 调用中。每次都会对同一个 url 进行 $.ajax 调用。例如。 “分配的文件夹/列表?用户 ID=12345”。 IE 不再进行调用,而是返回缓存的结果。

现在IE每次都被迫返回最新的数据。

最佳答案

IE 缓存所有的获取 - 你需要对请求做一些事情来欺骗 IE 不缓存它。与 jQuery.ajax调用时,您可以在调用中设置“cache: false”(这只会向请求的 URL 添加随机时间戳) - 在该树上查找有关执行此操作的配置选项,或者在其中操作用于重新加载的 URL 的 Hook 来自服务器的数据(并将您自己的时间戳添加到请求的 URL)。

关于c# - IE 缓存从服务器返回的旧数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12523045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com