使用AJAX进行Web编程,缓存问题(我认为)

时间:2010-02-12 12:29:19

标签: ajax

Web程序员在这里 - 使用AJAX(HTML,CSS,JavaScript,AJAX,PHP,MySQL),但由于某种原因,Internet Explorer正在表现出色(惊喜)。

AJAX正在通过查询MySQL数据库的PHP脚本更新HTML页面上的查询结果。

除非我使用Internet Explorer 8.0,否则一切正常。

有几个php脚本,允许根据特定条件订购数据,出于测试目的,我已将mktime字段(当前时间,格式为HH:MM:SS)附加到开头每个查询的结果。 当我使用IE时,这些时间似乎保持不变,而对于所有其他浏览器,这些时间都是正确的并显示当前时间。

我认为问题与缓存或其他方面有关。无论如何。

欢迎任何想法或建议......

4 个答案:

答案 0 :(得分:2)

Here是一篇关于缓存问题的文章。

如果您的请求是GET,请将其更改为POST,这将阻止缓存结果。

答案 1 :(得分:1)

GET请求缓存在IE中;将其切换为POST请求,它将不再被缓存。

答案 2 :(得分:1)

如果您没有真正使用它来更新或创建内容,而不是切换到POST,那么您应该在查询字符串中附加一个随机数,如http://domain.com/ajax/some-request?r=123456中所示。如果这个号码对于每个请求都是唯一的,那么你就不会遇到缓存问题。

答案 3 :(得分:0)

我所做的是,我保留了“GET”并在查询字符串中添加了新的虚拟查询参数,如下所示:

./BaseServlet?sname=3d_motor&calcdir=20110514&dummyParam=datetime

我在javascript中设置了 dummyParam 一个date对象的值,这样每次生成url时,浏览器都会将其视为新的url并获取新的(新的)结果。

var d = new Date();
url = url + '&dummyParam='+d.valueOf();

因此,这不是生成一些随机数,而是简单的方法!