Ajax更新程序无法在Internet Explorer中工作

时间:2009-01-12 18:21:07

标签: ajax internet-explorer

我遇到了无法解决的ajax更新程序问题。 我有这个代码Servicii

它在Firefox中完美运行,但在Internet Explorer中它什么都不做。如果我从我的硬盘打开网站它可以工作,但它只适用于链接一次然后我必须重新加载整个页面...

有没有人知道如何解决这个问题?

谢谢

2 个答案:

答案 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在返回任何数据之前执行了函数的渲染部分。这是问题和解决方案:

Returned AJAX html breaks IE click events