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;
    });
  • 相关阅读:
    [常用的Cmd运行命令]
    [Ajax三级联动 无刷新]
    [占位符 &nbsp; ]
    [String.Format(转换时间格式)]
    [ASP.NET应用到的时间处理函数]
    [SQL Server常用系统存储过程大全]
    [SQL Server创建视图时的注意点]
    [SQL Server 视图的创建- (create view必须是批处理中仅有的语句问题)]
    [SQL 高级查询运算符的用法 UNION (ALL),EXCEPT(ALL),INTERSECT(ALL) ]
    layui 表单遇到的小问题
  • 原文地址:https://www.cnblogs.com/zcynine/p/5069919.html
Copyright © 2011-2022 走看看