Ajax数据更新问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 12:33:03
我做一个再线聊天系统,为了能随时了解最新聊天记录,所以我的Ajax代码每隔1秒钟向服务器读取一次最新数据,可是问题来了:张三发表了最新信息,服务器数据库更新了,可客户端Ajax读取的确是第一次读取的信息,最新信息无法读取,为什么?(服务器使用asp)
在URL的后面附上一个参数?
这样就可以避免页面缓存了吗?为什么呢?能讲讲吗?

是缓存的问题。

因为xmlhttp提交的url会有缓存的问题。

在ajax提交的URL后面添加一个随机数,基本保持每次提交的URL都不同,这样xmlhttp认为不是一个相同的url。避免缓存的读取。

用rnd生产一个随机数,加在提交的url后面,作用就是保持每次URL的不同

dddd.asp?xxx=eee&ccc=444&suiji=随机数

在asp页面设置不缓存页面:

Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "No-Cache"

极有可能是缓存的问题。
我解决这个问题的方法是:每次在向服务器端请求数据时,都在URL的后面附上一个参数,参数值为随机数,这样就使每次请求的URL都不同,避免缓存带来的问题。