zoukankan      html  css  js  c++  java
  • ajax 基础实例

     
    优点:使用ajax读取数据文件,不需要刷新页面就能取出文件数据

                   目  录 

      1.0 基于ajax请求的理论支持 

      1.1 js 实现jquray中 ajax请求功能  

    基于ajax请求的理论支持 

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    
        <title></title>
        
    <script type="text/javascript">
        function ajax(url, fnSucc, fnFaild) {
            //1.创建Ajax对象
            if (window.XMLHttpRequest) {
                var oAjax = new XMLHttpRequest();
            }
            else {
                var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
            }
    
            //2.连接服务器
            //open(方法, 文件名, 异步传输)
            oAjax.open('GET', url, true);
    
            //3.发送请求
            oAjax.send();
    
            //4.接收返回
            oAjax.onreadystatechange = function () {
                //oAjax.readyState    //浏览器和服务器,进行到哪一步了
                if (oAjax.readyState == 4)    //读取完成
                {
                    if (oAjax.status == 200)    //成功
                    {
                        fnSucc(oAjax.responseText);
                    }
                    else {
                        if (fnFaild) {
                            fnFaild(oAjax.status);
                        }
                        //alert('失败:'+oAjax.status);
                    }
                }
            };
        }
        window.onload = function () {
            var oBtn = document.getElementById('myDiv');
                oBtn.onclick = function () {
                                 ajax('test1.txt?t='+new Date().getTime(),
                                     function (str) { 
                                //?t='+new Date().getTime()  可以控制缓存,即每次改变 test1.txt文件不需要刷新页面既可读取文件改变后的值
                              var oTxt = document.getElementById('txt');
                                oTxt.value = str; 
                                                         }
                                           ); 
                                     }; 
                             }; 
    </script> 
    </head> 
    <body>
                     <input type="button" id="myDiv" value="读取"/><br /> 
              用户名: <input type="text" id="txt" />
                     <input type="text" id="Text1" /> 
    </body>
     </html>
    

      

     

    js 实现jquray中 ajax请求功能  

     下面是根据W3C上的解析,自己写的一个小小的ajax请求   框架是 ASP.NET  MVC

    <input type="button" id="btn_nowTime1" onclick="Myajax()" value="请求" />
    
    var createAjax = function () {
            var xhr = null;
            try {
                //IE系列浏览器
                xhr = new ActiveXObject("microsoft.xmlhttp");
            } catch (e1) {
                try {
                    //非IE浏览器
                    xhr = new XMLHttpRequest();
                } catch (e2) {
                    window.alert("您的浏览器不支持ajax,请更换!");
                }
            }
            return xhr;
        };
    
        var ajax = function (conf) {
            // 初始化
            //type参数,可选
            var type = conf.type;
            //url参数,必填 
            var url = conf.url;
            //data参数可选,只有在post请求时需要
            var data = conf.data;
            //datatype参数可选    
            var dataType = conf.dataType;
            //回调函数可选
            var success = conf.success;
    
            if (type == null) {
                //type参数可选,默认为get
                type = "get";
            }
            if (dataType == null) {
                //dataType参数可选,默认为text
                dataType = "text";
            }
            // 创建ajax引擎对象
            var xhr = createAjax();
            // 打开
            xhr.open(type, url, true);
            // 发送
            if (type == "GET" || type == "get") {
                xhr.send(null);
            } else if (type == "POST" || type == "post") {
                xhr.setRequestHeader("content-type",
                        "application/x-www-form-urlencoded");
                xhr.send(data);
            }
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    if (dataType == "text" || dataType == "TEXT") {
                        if (success != null) {
                            //普通文本
                            success(xhr.responseText);
                        }
                    } else if (dataType == "xml" || dataType == "XML") {
                        if (success != null) {
                            //接收xml文档    
                            success(xhr.responseXML);
                        }
                    } else if (dataType == "json" || dataType == "JSON") {
                        if (success != null) {
                            //将json字符串转换为js对象  
                            success(eval("(" + xhr.responseText + ")"));
                        }
                    }
                }
            };
        };
    

      

    调用:

    function Myajax() {
            ajax({
                url: '/home/index',
                success: function (data) {
                    alert(data);
                }
            })
         }
    

      

    开始对XMLHttpRequest 这个对象很模糊,最详解的也摸过于  W3C 上的解析,现在想来这也许就是开发中该用的API 是行业标准了吧! 

    发现几篇好的文章,就把链接给拿来了

    滴答的雨

     dipoo

  • 相关阅读:
    LUA 协程
    LUA GC 简单测试
    软件重构-笔记
    托管执行过程
    文件夹 加密
    db 文件 查看 打开 工具 db 中文 版 navicat 中文
    qq sid qq sid 是什么 qq sid 怎么用
    windows系统,联系人文件。个性化。
    csdn 音乐 怎么拦截 提交后的程序 csdn 栏目 音乐 csdn 添加 音乐
    CSDN博客栏目设置个性化
  • 原文地址:https://www.cnblogs.com/izhiniao/p/3769994.html
Copyright © 2011-2022 走看看