zoukankan      html  css  js  c++  java
  • 关于IE7 多次Ajax 返回同一值问题

    问题很简单,当 验证框 获得焦点的时候,后台返回不同的验证码

    我使用jQuery Ajax来实现.

    1 $.ajax({
    2   url:"handler.ashx",
    3   data:"method=getValidNumber",
    4   dataType:"POST"

    5 }) 

    我一般都是在FF下调试的,事情进展的很顺利,后来用IE试着用了下,问题就来了。

     IE7的缓存,让我无法获得想要的结果,没办法,事情出了,总得解决啊,呵呵。

    找了很多资料,也没找到合适的,可能我搜索的关键字用的不够好。

    今天细读了下,jQuery源代码,cache设置为false,貌似就OK了,可是那个IE7也很顽固,还是老样子。

    后来在jQuery源码中看了下它处理get请求的方式,似乎为了不让缓存,要加个随机数上去,我也不管3721,加了个随机数上去,结果就OK了。

    代码如下

     1 $.ajax({

    2    url:"handler.ashx",
    3    data:"method=getValidNumber&t="+Math.Random(),
    4    dataType:"POST"
    5 })

     问题分析:

    IE7缓存是为了提高效率,当访问一个URL的时候,Http Header 中会有个last modified time 不知道有没有写错,意思就是这个

    会被修改掉,要是多次访问同一个URL,它会比对URL,发现在缓存中,那就到缓存中加载。

     加了个随机数,它发现URL变了,那就去重新加载吧,这样数据就又可以重新获得了。

    高手给我解答下啊:

    我映像中 POST方法的话,是没关系。只有GET的时候才会存在这样的问题。

    可能我的知识理解有误,请高手帮帮忙,解答下,在此谢过! 

  • 相关阅读:
    在数值中加入千位分隔符的方法
    用 Javascript 验证表单(form)中的单选(radio)值
    用 Javascript 验证表单(form)中多选框(checkbox)值
    用 CSS 实现图片替换文字(Image replacement)
    计算机技术分类
    最近好乱acm与数模时间重复了
    memcached Telnet Interface
    event_new
    event_base_loop
    event_base_loop
  • 原文地址:https://www.cnblogs.com/KenChen/p/1525956.html
Copyright © 2011-2022 走看看