我遇到了无法解决的ajax更新程序问题。 我有这个代码Servicii
它在Firefox中完美运行,但在Internet Explorer中它什么都不做。如果我从我的硬盘打开网站它可以工作,但它只适用于链接一次然后我必须重新加载整个页面...
有没有人知道如何解决这个问题?
谢谢
答案 0 :(得分:5)
我遇到了这个问题。我假设您有一个函数,它定期向服务器发出请求以获取数据,然后在上次发出请求后该数据发生更改时更新页面。
即使您不在HTTP标头中告知,Internet Explorer也会将Ajax调用的结果缓存到同一资源。因此,如果您反复向get_data?id=whatever
发出请求,IE将提出一次请求,然后在将来停止发送请求,只返回第一个请求的结果。
解决方案是在请求字符串中添加一个虚拟参数。所以首先请求get_data?id=whatever&ie_hack=0
然后get_data?id=whatever&ie_hack=1
等。这将阻止IE缓存结果并强制它每次发出请求,因为它会为每个请求看到不同的查询字符串。
答案 1 :(得分:2)
我也遇到过这样的问题,不是缓存,而是竞争条件。 IE在返回任何数据之前执行了函数的渲染部分。这是问题和解决方案: