JQuery实现Ajax

JQuery是对Ajax操作进行了封装

在 jQuery中最底层方法时,$.ajax(),第二层是 load(),$.get()和 $.post() 
第三层是 $.getScript() 和 $.getJSON()

load() 方法
任何的HTML元素都可以调用。是jQuery中最常用和最简单的 Ajax 方法,能载入远程的HTML代码并插入到 DOM 中.

load(url [ , data ] [ , callback ] )
    url : String,请求 url 页面的 url 地址。
    data(可选):object,发送到服务器的 key/value 数据
    callback(可选):Function,请求完成时的回调函数,无论请求成功或失败

程序员只需要使用 jQuery 选择器为 HTML 片段指定目标位置,然后将要加载的文件的 url 作为参数传递给 load() 方法即可。

需要jQuery 库

<script type="text/javascript" src="scripts/jquery-1.7.2.js"></script>
<script type="text/javascript">
    $( function ( {
      $("a").click ( funtion() {
           var url = this.href;    
            // 防止缓存,在请求后面添加一个时间点,使的每个请求内容都是不一样的
           var args = {"time" : new Date()};
            $("#content").load(url, args);
        } ) ;  
    } ) ;
</script>
<body>
    <a href="helloAjax.txt">HelloAjax</a>
    <div id="content"></div>
</body>

load() 方法细节
如果只需要加载目标 HTML 页面的某些元素,则可以通过 load() 方法的 url 参数来达到目的,通过 url 参数指定选择符,就可以方便的从加载过来的 HTML 文档中选出需要的内容, load() 方法的 url 参数的语法结构为 “url selector” (注意:url 和 选择器之间由一个空格)
传递方式:load() 方法的传递参数根据参数 data 来自动定义的。如果没有参数传递,采用 GET 方式传递,否则使用 POST 方式。
对于必须在加载完成才能继续操作,load() 方法提供了回调函数,该函数有三个参数,代表请求返回内容的data;代表请求状态的 textStatus 对象 和 XMLHttpReqeust 对象。

<script type="text/javascript">
    $(function() {
        $('a').click(function() {
            var url = this.href + ' h2'; //可以选择加载其中的一个标签,注意 url selecter 之间有一个空格
            //任何一个 html 节点都可以使用 load 方法加载 Ajax,结果将直接插入 html 节点中
            $('#detail').load(url);
            return false;
        })
    })
</script>

$.get() 或 $.post() 方法
xml格式文件

<script type="text/javascript">
$(function() {
    $('a').click(function() {
        var url = this.href;
        var args = {'time' : new Date()};

        //args:JSON格式
        //post 方法得到的结果再回调函数的参数中,直接将 post 改成 get 就是 get 请求了
        //function:回调函数,当响应结束时,回调函数被触发,响应结果在data中
        $.post(url, args, function(data){
            //alert(data); //Object XMLDocument
            //将 xml 格式的包装成 jQuery 的方法
            var name = $(data).find('name').text();
            var email = $(data).find('email').text();
            var website = $(data).find('website').text();
            $('#detail').empty()
                .append('<h2><a href="mailto:' + email + '">' + name + '</h2>')
                .append('<a href="' + website + '">' + website + '</a>');
            });
        return false;
    })
})
</script>
</head>
<h1>People</h1>
    <ul>
        <li>
        <a href="files/andy.xml">Andy</a>
        </li>
        <li>
            <a href="files/richard.xml">Richard</a>
        </li>
        <li>
            <a href="files/jeremy.xml">Jeremy</a>
        </li>
        <div id="detail"></div>
    </ul>
</body>

JSON格式文件

<script type="text/javascript">
$(function() {
    $('a').click(function() {
        var url = this.href;
        var args = {'time' : new Date()};

        //args:JSON格式
        //get 方法得到的结果再回调函数的参数中
        //function:回调函数,当响应结束时,回调函数被触发,响应结果在data中
       // 从服务端返回的 JSON 字符串,属性名必须是双引号
        //alert(url);
        $.getJSON(url, args, function(data){
            var name = data.person.name;
            var email = data.person.email;
            var website = data.person.website;
            $('#detail')
                .empty()
                .append('<h2><a href="mailto:' + email + '">' + name + '</h2>')
                .append('<a href="' + website + '">' + website + '</a>');
            });
        return false;
    })
})
</script>
</head>
<h1>People</h1>
    <ul>
        <li>
            <a href="files/andy.js">Andy</a>
        </li>
        <li>
            <a href="files/richard.js">Richard</a>
        </li>
        <li>
            <a href="files/jeremy.js">Jeremy</a>
        </li>
        <div id="detail"></div>
    </ul>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值