zoukankan      html  css  js  c++  java
  • jQuery Ajax

    load(url<String>[,data<Object>] [,callback<Function>])

    载入远程HTML代码并插入DOM中

    从服务器上获取静态的数据文件

    1.url

    $("#resText").load("test.html .para");

    2.data

    data决定了load()方法的传递方式,如果没有data参数传递,则采用GET方式传递,反之,则会自动转换为POST。

    3.回调函数

    function(responseText, textStatus, XMLHttpRequest){
        //responseText: 请求返回的内容
        //textStatus: 请求状态:success error notmodified timeout
        //XMLHttpRequest: XMLHttpRequest对象
    }

    $.get(url<String>[,data<Object>][,callback<Function>][,type<String>])

    使用GET方法来进行异步请求

    $post(url<String>[,data<Object>][,callback<Function>][,type<String>])

    使用POST方法来进行异步请求

    1.key/value形式的data会作为QueryString附加到请求URL中

    2.type为服务器返回内容的格式

    3.回调函数

    function(){
        //data: 返回的内容:XML/JSON/HTML
        //textStatus:  请求状态: success error notmodified timeout
    }

    $.getScript()

    直接加载.js文件,与HTML片段一样简单方便。

    $(function(){
        $.getScript("jquery.color.js" ,function(){
            $("#go").click(function(){
                $(".block").animate({background:'pink'}, 1000)
                            .animate({background:'blue'}, 1000);
            });
        });
    });

    $.getJSON()与$.each()

    加载JSON文件,解析JSON文件

    $.getJSON("test.json", function(data){
        //data: 返回的数据
    });

    用each()方法把返回的json数据遍历出来并且直接生成html内容

    $(function(){
        $("#send").click(function(){
            $.getJSON("test.json", function(data){
                $("#resText").empty();
                var _html = "";
                $.each(data, function(commentIndex, comment){
                    _html += '<div class="comment"><h6>'
                            + comment['username']
                            + ':</h6>'
                            + '<p class="para">'
                            + comment['content']
                            + '</p></div>'
                });
                $("#resText").html(_html);
            });
        });
    });

    $.ajax()

    jQuery最底层的ajax实现

    serialize()

    把数据序列化成字符串形式

    $("#send").click(function(){
        $.get("get.php", $("#formTest").serialize(), function(data, textStatus){
            $("#resText").html(data);
        });
    });

    不仅仅是表单form能用,form下的元素都能用。

    $(":checkbox, :radio").serialize();

    serializeArray()

    将DOM元素序列化后返回JSON格式的数据

    var fields = $(":checkbox, :radio").serializeArray();
    console.log(fields);

    测试一下就可以看到结果,就知道怎么用啦!

    $.param(obj)

    serialize()的核心,用来对一个对象或者数组按照key/value进行序列化。

    var obj = {a:1,b:2,c:3};
    var k = $.param(obj);
    alert(k);

    jQuery中的Ajax全局事件

    我们经常要在页面加载数据的时候给用户一个反馈,告诉用户数据正在加载中,请耐心等待之类的...比如

    <div id="loading">加载中...</div>

    然后用CSS控制元素隐藏,当Ajax请求开始的时候,将此元素显示,用来提示用户Ajax请求正在进行。当Ajax请求结束后,将此元素隐藏。

    $("#loading").ajaxStart(function(){
        $(this).show();
    });
    
    $("#loading").ajaxStop(function(){
        $(this).hide();
    });

    除此之外还有

    ajaxComplete(callback); //请求完成时执行
    ajaxError(callback); //请求错误时执行
    ajaxSend(callback); //发送请求前执行
    ajaxSuccess(callback); //请求成功时执行

    如果想在使用$.ajax()时使Ajax请求不受全局方法影响(不触发全局方法),jQuery1.5以前可以这么做

    $.ajax({
        url:"test.html",
        global:false
    });

    1.5以后可以这么做

    $.ajaxPrefilter(function(options){
        options.global = true;
    });
  • 相关阅读:
    计算机网络的三种通讯模式(单播,广播,组播)
    java字符串面试题
    java使用纯命令行打包项目
    java字节码的工具(含IDEA插件)
    Spring配置之context:annotation与、component-scan以及annotation-driven
    Java ThreadLocal的使用案例
    对称平方数(to_string函数,stoi函数真香)
    字符串最后一位长度
    缺失的括号
    数三角形
  • 原文地址:https://www.cnblogs.com/zcynine/p/5069919.html
Copyright © 2011-2022 走看看