原生js代码实现ajax 的方式

刚刚学习了 ajax.很是兴奋。

因为写项目的时候,刚开始是没有加入ajax的,所以一开始写前台页面初始数据的填充(点击链接或按钮跳出的页面的数据)或者是下拉框的三级联动的时候,感觉是真的难受啊。因为每一次点击事件都要重新刷新整个页面。

    不使用ajax 难受的理由:    

    1,每次要更新界面的一部分数据 的话,就必须要刷新整个页面。这带来的结果是,为了保证不更新的数据不丢失,就必须要把这些不不跟新的数据 也一并传到后台,处理完之后和跟新的数据一并返回前台。后台代码就会增多。操作繁琐。

    2,前台的数据显示会改变,三级联动的时候,点选了一个下拉框,选择的选项会因为点击其他按钮(页面重新刷新)出现变动。

ajax(异步js and xml) 其实就是利用浏览器的接口 XMLHttpRequest ,调用方法 访问后台。这个技术一开始是微软公司提出来的,后其他浏览器也提供了这个接口。但ie 浏览器 和其他浏览是 实例化的对象不一样。

原生js代码实现ajax功能:

    var xmlHttpRequest = null;

//1根据浏览器实例化 对应的XMLHttpRequest 对象

    function  getXmlHttpRequest(){

    if( (typeof(XMLHttpRequest)) != 'undefined'){

    //非ie浏览器. 注意: 实际上,从ie7开始就可以直接支持这个方法
        xmlHttpRequest = new XMLHttpRequest();
      }else {
        //alert("2");
        //ie浏览器
        xmlHttpRequest =
        new ActiveXObject('Microsoft.XMLHttp');
      }

    return xmlHttpRequest;


//2设置访问后台的method  url

function f(){

    xmlHttpRequest = getXMLHttpRequest();

    xmlHttpRequest. open('post','url',true);

   xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //设置头信息
        xmlHttpRequest.onreadystatechange=fx; //挂载回调函数
        xmlHttpRequest.send(); //发送参数

}

function fx(){ //回调函数
    
        if(xmlHttpRequest.status == 200 &&xmlHttpRequest.readyState==4){
            var resTXT = xmlHttpRequest.responseText;  //后台产过来的数据是 json
            var j= JSON.parse(resTXT);

            alert(resTXT);

            //数据填充到下拉框

            var selectDep = document.getElementById('depotSelect');
            var temp ="<option id=\"-1\">====请选择仓库====</option>  ";
            for(var i =0;i<j.length;i++){
                temp=temp+"<option>"+ j[i].depotName+"</option> ";
            }
            selectDep.innerHTML=temp;
        }
        
    
    }   

----学习要坚持,工作心态要好


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值