Ajax封装及简单应用


AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

AJAX 不是新的编程语言,而是一种使用现有标准的新方法。

AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。

可将AJAX封装成库,方便调用,大致分四步:

  1. 创建Ajax对象
  2. 连接服务器
  3. 发送请求
  4. 接受返回值

具体代码如下:

function ajax(url,fnSucc,fnFaild){
    // 创建Ajax对象
    if(window.XMLHttpRequest){
        var oAjax = new XMLHttpRequest();
    } else {
        var oAjax = new ActiveXobject("Microsoft.XMLHTTP");
    }
    // 连接服务器
    oAjax.open('GET',url,true); // true表示要通过异步传输

    // 发送请求
    oAjax.send();

    // 接收返回
    oAjax.onreadystatechange = function(){
        if(oAjax.readyState == 4){ // 读取完成
            if(oAjax.status == 200){  // 成功
                fnSucc(oAjax.responseText);
            } else {
                if(fnFaild){
                    fnFaild();
                }
            }
        }
    }
}

通过检测window对象是否有XMLHttpRequest属性来确定浏览器是否支持标准的XMLHttpRequest。这里,不能根据浏览器的navigator.userAgent来检测浏览器是否支持某个JavaScript特性,一是因为这个字符串本身可以伪造,二是通过IE版本判断JavaScript特性将非常复杂。

当创建了XMLHttpRequest对象后,要先设置onreadystatechange的回调函数。在回调函数中,通常我们只需通过readyState === 4判断请求是否完成,如果已完成,再根据status === 200判断是否是一个成功的响应。

readyState有五个值,如下:

0 --> (未初始化)还没有调用open方法

1 --> (载入)已调用send()方法,正在发送请求

2 --> (载入完成)send()方法完成,已收到全部响应内容

3 --> (解析)正在解析响应内容

4 --> (完成)响应内容解析全部完成,可以在客户端调用了

封装的库取名为 ajax.js,将它引入代码中,就可以直接调用,下面先创建一个数据库 data.txt:

[{name: 张三, password: 123},{name: 李四, password: 321},{name: 王五, password: 456},{name: 小明, password: 654},{name: 小红, password: 789}]

通过点击按钮获取数据:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<script src="ajax.js"></script>
<script>
    window.onload = function() {
        var oBtn = document.getElementById('btn');
        oBtn.onclick = function() {
            ajax('data.txt', function(str) {
                alert(str);
            });
        };
    };
</script>
</head>
<body>
    <input type="button" id="btn" value="读取数据">
</body>
</html>

over!

优质内容筛选与推荐>>
1、牛顿法
2、前后台使用ajax传list的时候,用value[] 获取值
3、第20天
4、ruby的书写
5、ibatis中#与$的区别


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn