我有一个SharePoint Web部件,它从.ASHX页面获取XML数据,解析它并使用JavaScript显示它。一切正常,直到XML发生变化。当我在IE中查看Web部件时,在关闭浏览器之前不会更新新数据。即使执行CTRL-F5也不会获取新数据。
Firefox只需简单的页面刷新即可立即显示新数据。
我在.ASHX页面的查询字符串中添加了一个时间戳,这样就不会缓存XML结果,但这并没有解决我的IE问题。还有其他想法吗?
修改
.ASHX页面使用API访问列表并构建XML字符串,然后将其作为application/XML
内容类型返回。我已确认XML已更新以反映列表中的新数据。我还可以在FireFox中显示Web部件中消耗的数据。
解决方案
我实际上是生成时间戳,在服务器代码中附加到我的查询,然后将该字符串放在javascript中。一旦我将时间戳代码移动到javascript,事情开始变得更好。
答案 0 :(得分:2)
它很可能是缓存的,没有其他逻辑解释为什么它可以在Firefox中运行而不是在IE中运行。尝试连续几次重新加载IE。
检查.ashx页面设置的标题。
这不仅仅是您的浏览器可以缓存页面,任何包含Web服务器的中间件都可能存在有缺陷的缓存实现。您也可以尝试使用HTTP POST而不是GET,因为根据HTTP规范,永远不应缓存POST请求。
答案 1 :(得分:1)
它是自定义Web部件还是开箱即用的Web部件之一?如果您提供了有关如何从HttpHandler(ashx)检索数据的更多信息,它将更容易为您提供帮助。