zoukankan      html  css  js  c++  java
  • js学习总结----ajax兼容处理及惰性思想

    封装代码如下:

    // var xhr = null;
    // //为了兼容IE6及更低的版本:如果第一个不支持,则浏览器会报错,后面就不在执行了
    // try{
    //     xhr = new ActiveXObject("Microsoft.XMLHTTP");
    // }catch(e){
    
    // }
    // if(new ActiveXObject("Microsoft.XMLHTTP")){
    //     xhr = new ActiveXObject("Microsoft.XMLHTTP");
    // }else if(new ActiveXObject("Msxm12.XMLHTTP")){
    //     xhr = new ActiveXObject("Msxm12.XMLHTTP");
    // }else if(new ActiveXObject("Msxm13.XMLHTTP")){
    //     xhr = new ActiveXObject("Msxm13.XMLHTTP");
    // }
    //JS高阶编程技巧之"惰性思想":能够执行一次就搞定的不会执行多次
    //createXHR:创建AJAX对象,兼容所有的浏览器
    function createXHR(){
        var xhr = null,
            flag = false,
            ary = [
                function(){
                    return new XMLHttpRequest;
                },
                function(){
                    return new ActiveXObject("Microsoft.XMLHTTP");
                },
                function(){
                    return new ActiveXObject("Msxm12.XMLHTTP")
                },
                function(){
                    return new ActiveXObject("Msxm13.XMLHTTP");
                }
            ];
        for(var i = 0,len = ary.length;i<len;i++){
            var curFn = ary[i];
            try{
                xhr = curFn();
                //本次循环获取的方法执行没有出现错误:说明此方法是我想要的,我们下一次直接执行这个小方法即可,这就需要我们把createXHR重写为小方法即可(完成后不需要判断下面的,直接退出循环即可)
                createXHR = curFn;
                flag = true;
                break;
            }catch(e){
                //本次循环获取的方法执行出现错误:继续执行下一次的循环
            }
            
    
        }
        if(!flag){
            throw new Error("your brower is not support ajax,please change your brower,try again!")
        }
        return xhr;
    }
  • 相关阅读:
    Linux网卡驱动程序对ethtool的支持和实现
    Linux下samba编译与安装(Ubuntu和嵌入式linux)
    [DM8168]Linux下SPI驱动测试
    Sublime Text 2 中文乱码
    Linux线程优先级
    Linux再谈互斥锁与条件变量
    Makefile编写记录
    Linux大小端模式转换函数
    电脑显卡4种接口类型:VGA、DVI、HDMI、DP
    python __enter__ 与 __exit__的作用,以及与 with 语句的关系
  • 原文地址:https://www.cnblogs.com/diasa-fly/p/7268557.html
Copyright © 2011-2022 走看看