var http_request; //在外面申明对象,主要为了在updatePage中使用
   
//无刷新更新内容
function post(url,parameter)
{   
    if(http_request==null)
    {
        http_request = getHttpRequest();
    }
       
    if (!http_request)  
    {
        alert("XMLHttpRequest 初始化失败!");
    }
    else
    {
        //在url尾部加一个rnd随机数,这样就不会发生读取ie缓存
        if(url.indexOf("?") > -1)
        {
            url = url + "&rnd=" + Math.random();
        }
        else
        {
            url = url + "?rnd=" + Math.random();
        }
       
       
        http_request.open("POST", url, false); //打开请求 //false 同步, true 异步
        http_request.onreadystatechange = updatePage; //设置回调方法
        http_request.setRequestHeader("Content-length", parameter.length);
        http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        http_request.send(parameter); //发送请求
    }
}
  
//回调方法
function updatePage()
{   
    if (http_request.readyState == 4)
    {   
        if(http_request.status == 200)          
        {   
                  alert("..."); //
        }
    }
}

测试发现,在chrome 26下,如果申明了一个公共的变量:http_request

然后多次重复使用XMLHttpRequest时,如果Post时,传递了参数(内容),那么会连续执行2次回调函数: updatePage()

如果Post时没有传参数(内容),只会执行1次回调函数: updatePage()

在firefox和ie下测试,只会执行1次回调函数: updatePage()

解决在chrome 26下遇到的这个问题,也很简单,每次使用http_request(XMLHttpRequest)时,都重新初始化一下:

http_request = getHttpRequest();

名品推荐:棉适 宾莱雅

最新文章

  1. 表空间基于时间点的恢复(TSPITR)
  2. PostgreSql+PostGIS和uDig的安装
  3. i++ and ++i efficiency
  4. 泛型容器单元(Generics.Collections)[3]: TStack<T> 堆栈列表
  5. MagicalRecord的使用(第三方库实现的数据库)
  6. Ubuntu下vim的配置
  7. 为什么 API 监控对于任何业务来说都重要?
  8. java基础之抽象类与接口的区别
  9. U盘安装win7+CentOS7双系统
  10. ASPxGridView后台获取edit、delete、选择框等按钮。
  11. http协议与http代理
  12. jquery validate扩展验证方法
  13. 关于MongoDB安全事件的一些思考
  14. C#表达式目录树(Expression)
  15. 精读《C++ primer》学习笔记(第四至六章)
  16. Java基础学习-HelloWorld案例的编写和运行
  17. 什么是Spring Boot?
  18. Android原生(Native)C开发之四:SDL移植笔记
  19. JVM 内部原理(四)— 基本概念之 JVM 结构
  20. 那些年读过的书《Java并发编程实战》十、再探究Java内存模型

热门文章

  1. CentOS6下OpenLDAP+PhpLdapAdmin基本安装及主从/主主高可用模式部署记录
  2. 《移山之道》Reading Task
  3. Linux内核分析——ELF文件格式分析
  4. 【Alpha阶段】展示博客发布!
  5. opencv学习笔记(五)
  6. HTML 引入Css样式
  7. 关于Windows 2019 antimalware 进程占用CPU 过多的处理方法 关闭windows 病毒防护的方法
  8. SQLSERVER 2014 内存优化表相关
  9. React 模板
  10. Metaspace 之一:Metaspace整体介绍(永久代被替换原因、元空间特点、元空间内存查看分析方法)