【问题标题】:Internet Explorer caching data returned from DBInternet Explorer 缓存从 DB 返回的数据
【发布时间】:2011-12-31 12:10:02
【问题描述】:

所以我遇到了这个奇怪的问题。当我在本地开发并在 Firefox 和 IE 中运行我的应用程序时,一切正常。

当我在我们的集成环境中运行这个应用程序时,Firefox 没有看到这个问题,但 IE 有。基本上发生的事情是,我们为用户提供了通过 AJAX 调用在数据库表中存储新行的选项。 AJAX 调用是通过 JQuery 进行的,由 C# 中的控制器吸收,然后将一些信息发送到 proc 并存储在 DB 表中。一旦发生这种情况,我们都可以验证这些数据是否确实已存储。

还有在应用程序中查看表的功能,该表基本上模仿了我们刚刚存储数据的表,也可以通过 proc 访问(select 而不是insert/update)。现在,当我们在插入新行后立即查看时,Firefox 会在 web 表上显示新行,但 IE 不会 - 即使两者都在本地工作,但只有 Firefox 在集成中工作 - 太奇怪了。

现在,如果用户插入新行,然后清除他的 IE 缓存,他可以在单击链接时看到新行出现。

所以我的问题是:

1) 我是否应该专注于可能在 JQuery 中使用的一种方式,以便在用户每次单击链接以查看存储的行时清除浏览器缓存?

2) 为什么这可以在本地 IE 中运行,但不能在集成服务器上运行?

3) 在 .NET 中我可以在服务器端做什么,比如我可以在控制器方法上设置的属性,这些方法都设置/查看这些行,将 IE 设置为忽略缓存或其他什么?

谢谢大家。

【问题讨论】:

    标签: c# asp.net-mvc-2 caching jquery internet-explorer-9


    【解决方案1】:

    将 ajax 调用的 cache 属性设置为 false,如此处所述 http://api.jquery.com/jQuery.ajax/

    【讨论】:

    • 我会把这个也放进去以确保。
    【解决方案2】:

    只需对缓存的请求使用 POST 动词即可。 IE 缓存 GET,但 POST 正常。
    要实现这一点,请将[HttpPost] 属性添加到您的操作中。

    【讨论】:

    • 当我现在尝试访问这些操作时,这似乎返回了这个错误 - 找不到资源。
    • 如果有帮助,他们会返回 JsonResult 而不是 ActionResult
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多