Ajax多次请求同一个URL问题
终于把Ajax多次请求问题解决了!
我做的AJAX发送请求,点的第一下能正常显示,第二下时,我定义的id=loadflag的DIV一直在显示,我在req.status<400时已经把这个DIV的STYLE设置为NONE了,可是没效果,后来我跟踪了一下req.readyState的值,发现到了3后就没有了,说明没有返回值,而req.status<400也就每用了,后来检查了一下程序,我觉得应该不是封装AJAX的问题,在网上查了下AJAX的通信问题,终于知道什么原因了.
原因很简单,由于IE缓存的问题,在第一次请求后这个URL的处理结果状态已经存在缓存中了,第二次再请求时,这对于同一个URL的请求已经处理过了,所以就不会有返回值了,这导致我自己写的请求过程中显示的图标,一直在显示,弄的我相当郁闷.
知道什么原因了,自然要想解决的办法了,原因是由于相同的URL,那我们就请求不同的URL,但我们请求的地址还一样,这就可以使用URL参数来实现不同的URL,在请求的URL里加上一个Math.Random()参数,这样每次请求的URL就会不相同了,问题就解决了!
这可以看到缓存有好也有坏呀,什么都有利有弊!
我做的AJAX发送请求,点的第一下能正常显示,第二下时,我定义的id=loadflag的DIV一直在显示,我在req.status<400时已经把这个DIV的STYLE设置为NONE了,可是没效果,后来我跟踪了一下req.readyState的值,发现到了3后就没有了,说明没有返回值,而req.status<400也就每用了,后来检查了一下程序,我觉得应该不是封装AJAX的问题,在网上查了下AJAX的通信问题,终于知道什么原因了.
原因很简单,由于IE缓存的问题,在第一次请求后这个URL的处理结果状态已经存在缓存中了,第二次再请求时,这对于同一个URL的请求已经处理过了,所以就不会有返回值了,这导致我自己写的请求过程中显示的图标,一直在显示,弄的我相当郁闷.
知道什么原因了,自然要想解决的办法了,原因是由于相同的URL,那我们就请求不同的URL,但我们请求的地址还一样,这就可以使用URL参数来实现不同的URL,在请求的URL里加上一个Math.Random()参数,这样每次请求的URL就会不相同了,问题就解决了!
这可以看到缓存有好也有坏呀,什么都有利有弊!