方法通过Ajax请求加载服务器中的数据,真人手机网页版加载使用art.dialog前

2019-11-26 作者:联系我们   |   浏览(112)

ajax异步怎理解

没有分啊???

AJAX真人手机网页版 1核心真人手机网页版 2客户端真人手机网页版 3JavaScript程序能够实现异步执行,异步执行真人手机网页版 4相对与同步执行真人手机网页版 5.同步执行意味着代码必须顺序执行,真人手机网页版 6此给真人手机网页版 7真人手机网页版 8例子,真人手机网页版 9真人手机网页版 10会明白了!

Line_1
Line_2
Line_3

Line_1必须执行完真人手机网页版 11,才能执行Line_2.Line_1真人手机网页版 12能调用真人手机网页版 13真人手机网页版 14真人手机网页版 15真人手机网页版 16函数,有真人手机网页版 17真人手机网页版 18真人手机网页版 19函数真人手机网页版 20复杂,需要运行几小时能才运算完毕,而真人手机网页版 21真人手机网页版 22时候,真人手机网页版 23必须等,等真人手机网页版 24Line_1完全执行完毕,真人手机网页版 25才能执行Line_2,同理,Line_3也真人手机网页版 26!

异步则真人手机网页版 27同,还真人手机网页版 28假定Line_1,要调用真人手机网页版 29函数要执行几真人手机网页版 30小时,而真人手机网页版 31真人手机网页版 32时候,真人手机网页版 33真人手机网页版 34真人手机网页版 35必要等Line_1执行完毕才去执行Line_2,同理,Line_3也真人手机网页版 36!

异步执行真人手机网页版 37真人手机网页版 38真人手机网页版 39非常特殊真人手机网页版 40功能,真人手机网页版 41真人手机网页版 42真人手机网页版 43回调.同样真人手机网页版 44上面真人手机网页版 45真人手机网页版 46真人手机网页版 47例子,Line_1真人手机网页版 48调用函数时真人手机网页版 49真人手机网页版 50指定函数执行完真人手机网页版 51要调用真人手机网页版 52真人手机网页版 53真人手机网页版 54函数.当过了几真人手机网页版 55小时真人手机网页版 56,函数执行完毕了(当真人手机网页版 57真人手机网页版 58真人手机网页版 59意也有真人手机网页版 60能会出现错误),真人手机网页版 61会发出真人手机网页版 62真人手机网页版 63回调命令,真人手机网页版 64真人手机网页版 65命令会调用指定真人手机网页版 66真人手机网页版 67真人手机网页版 68函数,从而通知程序"执行完了".真人手机网页版 69真人手机网页版 70真人手机网页版 71真人手机网页版 72,还会传递真人手机网页版 73些参数,真人手机网页版 74些参数真人手机网页版 75真人手机网页版 76真人手机网页版 77真人手机网页版 78小时真人手机网页版 79来运算真人手机网页版 80真人手机网页版 81!

真人手机网页版 82知道我真人手机网页版 83样讲真人手机网页版 84有没有明白!至于AJAX真人手机网页版 85真人手机网页版 86用,真人手机网页版 87何去解决AJAX出现真人手机网页版 88问题(比真人手机网页版 89书签问题,真人手机网页版 90退按钮真人手机网页版 91问题等),真人手机网页版 92真人手机网页版 93真人手机网页版 94自己去找真人手机网页版 95方面真人手机网页版 96资料看看.真人手机网页版 97真人手机网页版 98真人手机网页版 99真人手机网页版 100真人手机网页版 101真人手机网页版 102地方,我们真人手机网页版 103真人手机网页版 104真人手机网页版 105起探讨,共同进步!

与 ajax 异步请求,ajax异步请求 上周写了一些代码,涉及到jquery异步请求,这里归纳总结下,希望对刚接触编程的同学有帮助。 主...

jQuery-1.9.1源码分析系列(十六)ajax——响应数据处理和api整理,jquery-1.9.1ajax

  ajax在得到请求响应后主要会做两个处理:获取响应数据和使用类型转化器转化数据

二、$.ajax的参数描述
参数 描述
url 必需。规定把请求发送到哪个 URL。
data 可选。映射或字符串值。规定连同请求发送到服务器的数据。
success(data, textStatus, jqXHR) 可选。请求成功时执行的回调函数。
dataType

基于jQuery中ajax的相关方法汇总(必看篇),jqueryajax

前提条件

话说是jquery中的ajax方法,那么前提条件当然是引入jquery啦。

<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>

具体方法

①load()

使用load()方法通过Ajax请求加载服务器中的数据,并把返回的数据放置到指定的元素中,它的调用格式为:

load(url,[data],[callback])

参数url为加载服务器地址,可选项data参数为请求时发送的数据,callback参数为数据请求成功后,执行的回调函数。

例如,点击“加载”按钮时,向服务器请求加载一个指定页面的内容,加载成功后,将数据内容显示在<div>元素中,并将加载按钮变为不可用。如下图所示:

真人手机网页版 106

②使用getJSON()方法异步加载JSON格式数据

使用getJSON()方法可以通过Ajax异步请求的方式,获取服务器中的数组,并对获取的数据进行解析,显示在页面中,它的调用格式为:

jQuery.getJSON(url,[data],[callback])$.getJSON(url,[data],[callback])

其中,url参数为请求加载json格式文件的服务器地址,可选项data参数为请求时发送的数据,callback参数为数据请求成功后,执行的回调函数。

例如,点击页面中的“加载”按钮,调用getJSON()方法获取服务器中JSON格式文件中的数据,并遍历数据,将指定的字段名内容显示在页面中。如下图所示:

真人手机网页版 107

③使用getScript()方法异步加载并执行js文件

使用getScript()方法异步请求并执行服务器中的JavaScript格式的文件,它的调用格式如下所示:

jQuery.getScript(url,[callback])$.getScript(url,[callback])

参数url为服务器请求地址,可选项callback参数为请求成功后执行的回调函数。

例如,点击“加载”按钮,调用getScript()加载并执行服务器中指定名称的JavaScript格式的文件,并在页面中显示加载后的数据内容,如下图所示:

在浏览器中显示的效果:

真人手机网页版 108

④使用get()方法以GET方式从服务器获取数据

 使用get()方法时,采用GET方式向服务器请求数据,并通过方法中回调函数的参数返回请求的数据,它的调用格式如下:

$.get(url,[callback])

参数url为服务器请求地址,可选项callback参数为请求成功后执行的回调函数。

例如,当点击“加载”按钮时,调用get()方法向服务器中的一个.php文件以GET方式请求数据,并将返回的数据内容显示在页面中,如下图所示:

真人手机网页版 109
⑤使用post()方法以POST方式从服务器发送数据

get()方法相比,post()方法多用于以POST方式向服务器发送数据,服务器接收到数据之后,进行处理,并将处理结果返回页面,调用格式如下:

$.post(url,[data],[callback])

参数url为服务器请求地址,可选项data为向服务器请求时发送的数据,可选项callback参数为请求成功后执行的回调函数。

例如,在输入框中录入一个数字,点击“检测”按钮,调用post()方法向服务器以POST方式发送请求,检测输入值的奇偶性,并显示在页面中,如下图所示:

真人手机网页版 110

⑥使用serialize()方法序列化表单元素值

使用serialize()方法可以将表单中有name属性的元素值进行序列化,生成标准URL编码文本字符串,直接可用于ajax请求,它的调用格式如下:

$(selector).serialize()

其中selector参数是一个或多个表单中的元素或表单元素本身。

例如,在表单中添加多个元素,点击“序列化”按钮后,调用serialize()方法,将表单元素序列化后的标准URL编码文本字符串显示在页面中,如下图所示:

真人手机网页版 111

在浏览器中的显示效果:

真人手机网页版 112

⑦使用ajax()方法加载服务器数据

使用ajax()方法是最底层、功能最强大的请求服务器数据的方法,它不仅可以获取服务器返回的数据,还能向服务器发送请求并传递数值,它的调用格式如下:

jQuery.ajax([settings])$.ajax([settings])

其中参数settings为发送ajax请求时的配置对象,在该对象中,url表示服务器请求的路径,data为请求时传递的数据,dataType为服务器返回的数据类型,success为请求成功的执行的回调函数,type为发送数据请求的方式,默认为get。

例如,点击页面中的“加载”按钮,调用ajax()方法向服务器请求加载一个txt文件,并将返回的文件中的内容显示在页面,如下图所示:

真人手机网页版 113

⑧使用ajaxSetup()方法设置全局Ajax默认选项

使用ajaxSetup()方法可以设置Ajax请求的一些全局性选项值,设置完成后,后面的Ajax请求将不需要再添加这些选项值,它的调用格式为:

jQuery.ajaxSetup([options])$.ajaxSetup([options])

可选项options参数为一个对象,通过该对象设置Ajax请求时的全局选项值。

例如,先调用ajaxSetup()方法设置全局的Ajax选项值,再点击两个按钮,分别使用ajax()方法请求不同的服务器数据,并将数据内容显示在页面,如下图所示:

真人手机网页版 114

⑨使用ajaxStart()和ajaxStop()方法

ajaxStart()ajaxStop()方法是绑定Ajax事件。ajaxStart()方法用于在Ajax请求发出前触发函数,ajaxStop()方法用于在Ajax请求完成后触发函数。它们的调用格式为:

$(selector).ajaxStart(function())$(selector).ajaxStop(function())

其中,两个方法中括号都是绑定的函数,当发送Ajax请求前执行ajaxStart()方法绑定的函数,请求成功后,执行ajaxStop ()方法绑定的函数。

例如,在调用ajax()方法请求服务器数据前,使用动画显示正在加载中,当请求成功后,该动画自动隐藏,如下图所示:

真人手机网页版 115

在浏览器中的结果:

真人手机网页版 116

从图中可以看出,由于使用ajaxStart()ajaxStop()方法绑定了动画元素,因此,在开始发送Ajax请求时,元素显示,请求完成时,动画元素自动隐藏。

以上这篇基于jQuery中ajax的相关方法汇总(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持帮客之家。

前提条件 话说是jquery中的ajax方法,那么前提条件当然是引入jquery啦。 script src="...

 

art.dialog 与 ajax 异步请求,ajax异步请求

上周写了一些代码,涉及到jquery异步请求,这里归纳总结下,希望对刚接触编程的同学有帮助。

 

主要习惯使用 art.dialog 框架,非常好用,在异步请求上,它提供了很多简便的方法。

加载使用art.dialog前,需要在页面代码上引入

1 <link href="/js/artDialog/css/blue.css" type="text/css" rel="stylesheet" />
2 <script type="text/javascript" charset="utf-8" src="/js/artDialog/artDialog.js?skin=default"></script>

在jquery1.9.1版本或以上,不支持live()事件,用

1 $(document).on("click","td #id",function(){
2     
3 })

替代live事件,响应动态显示的标签。

 

获得需要的数据:

ajax异步请求前,需要获取参数的值。主要有两种方式可以获得页面传过来的值。

不管是响应button <a> 还是其他,需要在相应标签内添加传来的参数值,如:

1 <a id="ajaxQuery" name="xxx" age="18" >ajaxquery</a>

它的响应事件获得参数方法:

$(document).on("click", "#ajaxQuery" , function(){
      var name = $(this).attr('name');
      var age = $(this).attr('age');             //这两种方式是通过获取属性值实现
      var value = $(this).val();                  //通过获取该标签的value值来实现
})    

 

由于ajax请求一般是异步请求,所以在执行.get类的方法后,这类方法的数据是无法再传给后面的函数调用。

 

弹框显示:

一般调用art.dialog的基本步骤:

 1 art.dialog(){
 2        lock: true,                                  //屏锁
 3        background:'#333333',                //背景色
 4        opacity: 0.6,                                //透明度
 5        title: '标题',                         
 6        id: '',
 7        content: ''                                  //弹框html脚本。  
 8        ok:function() {
 9 
10 
11       }
12 }

 

在ok : function() {}中写ajax请求脚本,

1 $.getJSON('url',function( data ) {
2           //url为请求的url,可直接在url后面接参数和值,传参过去
3 });

或者

1 $.getJSON( 'URL' ,data,function(data) {
2 
3 })

data为传递参数。

 

请求完成后,依据返回来的参数判断是否响应成功,若成功,可返回指定页面

1 if ( data.code = 'true' ) {
2         window.location.href = 'url';
3 }

 

基本上使用art.dialog整个流程到这里就结束了,接下来,具体谈下这几种ajax请求,和多选项时提交的情况。

多项选,selected情况的多选项情况:

var valueArr = [];
$("#id option:selected").each(function(){
      var value = $(this).val();
      valueArr.push( value );
}

checked多选项时情况:

1 var valueArr = [];
2 $("#id td .checked").each( function() {
3        var value = $(this).val();
4        valueArr.push( value );
5 }

 

ajax请求方法:

1 $.post("url",{'data':valueArr,'data2': value} ,function( data ) {
2 
3 },json);

 

应对form表单的提交,这里有一个更优的方法:

 1 var FormValue = $("#FormId").serialize();
 2 $.get ( "url",FormValue,function(data){
 3          data = eval("(" + data + ")");     //json decode
 4          if(data.code === 1001 ) {
 5                 window.location.href = '/url';
 6      }
 7          else {
 8               return false;
 9      }
10 });

 

其他ajax当然还有 $.ajax  $.getAjax等,也可以直接 用jquery 的submit事件实现表单提交。

b.类型转化器


  ajax有四种转换器

converters: {
           // 任意内容转换为字符串
           // window.String 将会在min文件中被压缩为 a.String
           "* text": window.String,

           // 文本转换为HTML(true表示不需要转换,直接返回)
           "text html": true,

           // 文本转换为JSON对象
           "text json": jQuery.parseJSON,

           // 文本转换为XML
           "text xml": jQuery.parseXML
       }

  其中jQuery.parseJSON/jQuery.parseXML点击看详情

  除此之外还有为script专门拓展的

// Ajax请求设置默认的值
jQuery.ajaxSetup({
    /**
     * 内容类型发送请求头(Content-Type),用于通知服务器该请求需要接收何种类型的返回结果。
     * 如果accepts设置需要修改,推荐在$.ajaxSetup() 方法中设置一次。
     * @type {Object}
     */
    accepts: {
        script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
    },
    contents: {
        script: /(?:java|ecma)script/
    },
    converters: {
        "text script": function(text) {
            jQuery.globalEval(text);
            return text;
        }
}

  还有一个在jsonp预处理的时候添加的

            s.converters["script json"] = function() {
                if ( !responseContainer ) {
                    jQuery.error( callbackName + " was not called" );
                }
                return responseContainer[ 0 ];
            };

 

  dataType无非就那么几种情况

  1:dataType为空,自动转化

  此时jQuery只能根据报文头信息是猜测当前需要处理的类型(ajaxHandleResponses中)

// 删除掉通配dataType,得到返回的Content-Type
while (dataTypes[0] === "*") {
    dataTypes.shift();
    if (ct === undefined) {
        ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
    }
}

  通过xhr.getAllResponseHeaders()得到报文头信息,然后去匹配Content-Type所有对象的值即可

  当然找到这个Content-Type = “html”,我们还得看看有没有对应处理的方法,如果有就需要替换这个dataTypes(ajaxHandleResponses中)

// 看看是不是我们能处理的Content-Type,比如图片这类二进制类型就不好处理了
if (ct) {
    // 实际上能处理的就是text、xml和json
    for (type in contents) {
        if (contents[type] && contents[type].test(ct)) {
            dataTypes.unshift(type);
            break;
        }
    }
}

  经过这个流程后,dataTypes 本来是* 就变成了对应的html了,这是jquery内部的自动转化过程。

 

  2:dataType开发者指定 

  xml, json, script, html, jsop

  

  最终ajax成功以后统一调用ajaxConvert函数处理。所以转换器总结起来就一句话:类型转换器将服务端响应的responseText或responseXML,转换为请求时指定的数据类型dataType,如果没有指定类型就依据响应头Content-Type自动处理。根据目标类型选择响应的转换器转换成目标数据。

  

function noTips(){    
    var formParam = $("#form1").serialize();//序列化表格内容为字符串    
    $.ajax({    
        type:'post',        
        url:'Notice_noTipsNotice',    
        data:formParam,    
        cache:false,    
        dataType:'json',    
        success:function(data){    
        }    
    });    
}    

  真人手机网页版 117

什是ajax异步

Web 应用程序都使用请求/响应模型从服务器上获得完整真人手机网页版 118 HTML 页面真人手机网页版 119常常真人手机网页版 120点击真人手机网页版 121真人手机网页版 122按钮真人手机网页版 123等待服务器响应真人手机网页版 124再点击另真人手机网页版 125真人手机网页版 126按钮真人手机网页版 127真人手机网页版 128真人手机网页版 129再等待真人手机网页版 130真人手机网页版 131真人手机网页版 132真人手机网页版 133反复真人手机网页版 134过程真人手机网页版 135有了 Ajax 和 XMLHttpRequest 对象真人手机网页版 136真人手机网页版 137真人手机网页版 138真人手机网页版 139使用真人手机网页版 140必让用户等待服务器响应真人手机网页版 141请求/响应模型了真人手机网页版 142针对局部请求做出响应真人手机网页版 143

a.获取响应数据


  获取响应数据是调用ajaxHandleResponses函数来处理。

  ajaxHandleResponses的功能有:

  - 为jqXHR设置所有responseXXX字段(值便是响应数据)

  - 找到正确的dataType (在content-type和预期的dataType两者中的一个)

  - 返回正确的响应数据

  我们看一个响应数据的格式:

  responses = {
    text: "{"code":500,"data":null,"message":"all exist","sessionId":"wsdfhl333sdfs"}"
  }

 

  设置responseXXX只有两种responseXML和responseText

    //填写responseXXX(responseXML/responseText)字段,
    for ( type in responseFields ) {
        if ( type in responses ) {
            jqXHR[ responseFields[type] ] = responses[ type ];
        }
    }

  找到正确的dataType。这是一个逐一探测的过程

    // 除去自动添加的dataType类型,同时在此过程中获得Content-Type类型
    while( dataTypes[ 0 ] === "*" ) {
        dataTypes.shift();
        if ( ct === undefined ) {
            ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
        }
    }

    //检查我们是否正在处理一个已知的content-type
    if ( ct ) {
        for ( type in contents ) {
            if ( contents[ type ] && contents[ type ].test( ct ) ) {
                dataTypes.unshift( type );
                break;
            }
        }
    }

    //检查看看我们是否有预期的数据类型的响应
    if ( dataTypes[ 0 ] in responses ) {
        finalDataType = dataTypes[ 0 ];
    } else {
        //尝试可转换的数据类型
        for ( type in responses ) {
            if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
                finalDataType = type;
                break;
            }
            if ( !firstDataType ) {
                firstDataType = type;
            }
        }
        // Or just use first one
        finalDataType = finalDataType || firstDataType;
    }

  返回正确的响应数据

    // 如果我们找到一个dataType
    // 把dataType到dataTypes中去,如果需要的话
    // 返回相应的响应数据
    if ( finalDataType ) {
        if ( finalDataType !== dataTypes[ 0 ] ) {
            dataTypes.unshift( finalDataType );
        }
     return responses[ finalDataType ];
  }
}

 

1.data主要方式有三种,html拼接的,json数组,form表单经serialize()序列化的;通过dataType指定,不指定智能判断。

在初始化页面时我们只读出它的第一级的所有数据并显示,在用户操作一级菜单其中一项时,会通过Ajax向后台请求当前一级项目所属的二级子菜单的所有数据,如 果再继续请求已经呈现的二级菜单中的一项时,再向后面请求所操作二级菜单项对应的所有三级菜单的所有数据,以此类推……这样,用什么就取什么、用多少就取 多少,就不会有数据的冗余和浪费,减少了数据下载总量,而且更新页面时不用重载全部内容,只更新需要更新的那部分即可,相对于后台处理并重载的方式缩短了 用户等待时间,也把对资源的浪费降到最低。

d. ajax相关api


jQuery.get(url [, data ] [, success ] [, type ])(函数用于通过HTTP GET形式的AJAX请求获取远程数据。

jQuery.get()函数用于实现简单的GET形式的AJAX请求,它在底层是使用jQuery.ajax()来实现的,只是省略了大多数不常用的参数设置,并仅限于HTTP GET方式。请注意,该函数是通过异步方式加载数据的。这里介绍的jQuery.get()是一个全局方法(无需创建jQuery对象即可调用,你可以理解为静态函数)。jQuery中还有一个同名的实例方法get(),用于获取当前jQuery对象中匹配的指定索引的DOM元素。)

 

jQuery.post(url [, data ] [, success ] [, type ])(函数用于通过HTTP POST形式的AJAX请求获取远程数据

jQuery.post()函数用于实现简单的POST形式的Ajax请求,它在底层是使用jQuery.ajax()来实现的,只是省略了大多数不常用的参数设置,并仅限于HTTP POST方式。请注意,该函数是通过异步方式加载数据的)

 

jQuery.getJSON(url [, data ] [, success ])(函数用于通过HTTP GET形式的AJAX请求获取远程JSON编码的数据。JSON是一种数据格式,JS原生支持JSON格式,通过jQuery.getJSON()从服务器获得的JSON数据,jQuery会先尝试将其转为对应的JS对象。如果请求的URL中包括"callback=?"等类似的部分,jQuery会自动将其视作JSONP,并执行对应的回调函数来获取JSON数据。

重要注意:服务器返回的JSON数据必须符合严格的JSON语法,例如:所有属性名称必须加双引号,所有字符串值也必须加双引号(而不是单引号)。请注意,该函数是通过异步方式加载数据的。)

 

jQuery.getScript(url [, success ])(函数用于通过HTTP GET形式的加载JavaScript文件并运行它。该函数用于动态加载JS文件,并在全局作用域下执行文件中的JS代码。该函数可以加载跨域的JS文件。请注意,该函数是通过异步方式加载数据的)

 

jQuery.fn.load(url [, data ] [, complete ])(函数用于从服务器加载数据,并使用返回的html内容替换当前匹配元素的内容。load()函数默认使用GET方式,如果提供了对象形式的数据,则自动转为POST方式。load()函数只会替换每个匹配元素的内部内容(innerHTML),所以他会默认dataType为html。你还可以在URL字符串后面追加指定的选择器(与URL之间用空格隔开),以便于只使用加载的html文档中匹配选择器的部分内容来替换当前匹配元素的内容。如果该文档没有匹配选择器的内容,就使用空字符串("")来替换当前匹配元素的内容。

如果当前jQuery对象没有匹配任何元素,则不会执行远程加载请求。

这里介绍的load()是一个Ajax请求函数,jQuery中还有一个同名的事件函数load(),用于在文档加载完成时执行指定的函数。该函数属于jQuery对象(实例)。该函数在底层是基于函数jQuery.ajax()实现的)

 

jQuery.ajaxPrefilter([ dataType ,] handler)(函数用于指定预先处理Ajax参数选项的回调函数。在所有参数选项被jQuery.ajax()函数处理之前,你可以使用该函数设置的回调函数来预先更改任何参数选项。

  你还可以指定数据类型(dataType),从而只预先处理指定数据类型的参数选项。该函数可以调用多次,以便于为不同数据类型的AJAX请求指定不同的回调函数

  dataType(可选/String类型)

  一个或多个用空格隔开的数据类型所组成的字符串。如果未指定该参数,则表示所有数据类型。可用的数据类型为"xml"、 "html"、 "text"、 "json"、 "jsonp"、 "script"。该字符串为它们之间的任意组合(多种类型用空格隔开),例如:"xml"、 "text html"、 "script json jsonp"。

  handler (Function类型)

  用于预处理参数选项的回调函数。它有以下3个参数:

  options:(Object对象)当前AJAX请求的所有参数选项。

  originalOptions:(Object对象)传递给$.ajax()方法的未经修改的参数选项。

  jqXHR:当前请求的jqXHR对象(经过jQuery封装的XMLHttpRequest对象)。

 

jQuery.ajaxSetup(settingsObj) (函数用于设置AJAX的全局默认设置。该函数用于更改jQuery中AJAX请求的默认设置选项。之后执行的所有AJAX请求,如果对应的选项参数没有设置,将使用更改后的默认设置。)

 

jQuery.fn.serialize()(函数用于序列化一组表单元素,将表单内容编码为用于提交的字符串。serialize()函数常用于将表单内容序列化,以便用于AJAX提交。

  该函数主要根据用于提交有效表单控件的name和value,将它们拼接为一个可直接用于表单提交的文本字符串,该字符串已经过标准的URL编码处理(字符集编码为UTF-8)。

  该函数不会序列化不需要提交的表单控件,这和常规的表单提交行为是一致的。例如:不在<form>标签内的表单控件不会被提交、没有name属性的表单控件不会被提交、带有disabled属性的表单控件不会被提交、没有被选中的表单控件不会被提交。

  与常规表单提交不一样的是:常规表单一般会提交带有name的按钮控件,而serialize()函数不会序列化带有name的按钮控件。)

 

jQuery.fn.serializeArray()(函数用于序列化一组表单元素,将表单内容编码为一个JavaScript数组。常用于将表单内容序列化为JSON对象,以便于被编码为JSON格式的字符串。

  该函数会将可用于提交的每个表单控件封装成一个Object对象,该对象有name和value属性,对应该表单控件的name和value属性。然后将这些Object对象封装为一个数组并返回。

  该函数不会序列化不需要提交的表单控件,这和常规的表单提交行为是一致的。例如:不在<form>标签内的表单控件不会被提交、没有name属性的表单控件不会被提交、带有disabled属性的表单控件不会被提交、没有被选中的表单控件不会被提交。

  与常规表单提交不一样的是:常规表单一般会提交带有name的按钮控件,而serializeArray()函数不会序列化带有name的按钮控件。)

 

jQuery.param(obj [, traditional ])将一个JS数组或纯粹的对象序列化为字符串值,以便用于URL查询字符串或AJAX请求。如果传入的不是数组或"纯粹的对象",则返回空字符串("");如果传入的是nullundefined等无法访问属性的值,则直接报错。

  所谓"纯粹的对象",就是通过{}new Object()自行创建的对象。JS内置的Boolean、Number、String、Date、RegExp、Function、Window等类型的对象都不算是"纯粹的对象"。

  返回的字符串已经过URL编码处理(采用的字符集为UTF-8))

 

jQuery.fn.ajaxStart(handlerFn)(为AJAX请求的ajaxStart事件绑定处理函数)

jQuery.fn.ajaxSend(handlerFn)(设置当AJAX请求即将被发送时执行的回调函数。)

jQuery.fn.ajaxComplete(handlerFn)(设置当AJAX请求完成(无论成功或失败)时执行的回调函数。)

jQuery.fn.ajaxSuccess(handlerFn)(设置当AJAX请求成功完成时执行的回调函数。)

jQuery.fn.ajaxError(handlerFn)(设置当AJAX请求失败时执行的回调函数。)

jQuery.fn.ajaxStop(handlerFn)(为AJAX请求的ajaxStop事件绑定处理函数。)

  

  到此为止,jQuery 1.9.1版本的源码分析完毕。欢迎拍砖指正。

 

  如果觉得本文不错,请点击右下方【推荐】!

ajax在得到请求响应后主要会做两个处理:获取响应数据和使用...

推荐一篇不错的jQuery Ajax 实例文章,忘记了可以去看看,地址为:http://www.cnblogs.com/yeer/archive/2009/07/23/1529460.html 和 http://www.w3school.com.cn/jquery/

 

c. jQuery. ajaxSetup ( target[, settings] )


  函数如果用于外部使用没有settings这个参数:用于设置AJAX的全局默认设置。

  这个函数有两个用法

  1.当target、settings两个参数传递的时候,创建一个完整成熟的设置对象(包含ajaxSettings和传递的settings)写入到target中。最终jQuery.ajaxSettings这个全局变量没有改变。这个用法主要是jQuery内部使用,外部使用没有意义。

  2.当settings不存在的时候(即只有一个参数),则将target写入jQuery.ajaxSettings。这个用法在外部使用较多。主要是设置AJAX的全局默认设置。

  查看源码

//创建一个完整成熟的设置对象(包含ajaxSettings和传递的settings)写入到target中。
//如果settings省略,则将target写入ajaxSettings.
ajaxSetup: function( target, settings ) {
    return settings ?
        ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
        ajaxExtend( jQuery.ajaxSettings, target );
}

  使用到ajaxExtend函数,通过jQuery.ajaxSettings.flatOptions指定那些选项不做深度拓展(深度拷贝替换),其他的都做深度拓展。默认的不做深度拓展的选项只有两个jQuery.ajaxSettings.flatOptions: {url: true,context: true}。外部可以直接将不做深度拓展的选项添加到jQuery.ajaxSettings.flatOptions上。

//为ajax选项专门做拓展的函数
//对flatOptions里面的选项(不需要深度拓展(深度拷贝替换))
function ajaxExtend( target, src ) {
    var deep, key,
        flatOptions = jQuery.ajaxSettings.flatOptions || {};

    //针对不需要深度拓展的选项保存在target[key]中,需要深度拓展的选项保存在deep[key]中。
    for ( key in src ) {
        if ( src[ key ] !== undefined ) {
            ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
        }
    }
    //将deep中的内容深度拓展(深度拷贝替换)到target中
    if ( deep ) {
        jQuery.extend( true, target, deep );
    }
    return target;
}

 

$.ajax({     
    url:'<%=request.getContextPath()%>/kc/kc_checkMerNameUnique.action',     
    type:'post',     
    data:'merName='+values,     
    async : false, //默认为true 异步     
    error:function(){     
       alert('error');     
    },     
    success:function(data){     
       $("#"+divs).html(data);     
    }  
});

  八  contentType属性

//1.$.ajax带json数据的异步请求  
var aj = $.ajax( {    
    url:'productManager_reverseUpdate',// 跳转到 action    
    data:{    
             selRollBack : selRollBack,    
             selOperatorsCode : selOperatorsCode,    
             PROVINCECODE : PROVINCECODE,    
             pass2 : pass2    
    },    
    type:'post',    
    cache:false,    
    dataType:'json',    
    success:function(data) {    
        if(data.msg =="true" ){    
            // view("修改成功!");    
            alert("修改成功!");    
            window.location.reload();    
        }else{    
            view(data.msg);    
        }    
     },    
     error : function() {    
          // view("异常!");    
          alert("异常!");    
     }    
});  

  ajax是基于jquery实现的

一、$.ajax的一般格式

  Ajax 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。

三、$.ajax需要注意的一些地方:

  Ajax可使因特网应用程序更小、更快,更友好。

//4.$.ajax拼接data的异步请求

  w3c地址:

var yz=$.ajax({    
     type:'post',    
     url:'validatePwd2_checkPwd2?password2='+password2,    
     data:{},    
     cache:false,    
     dataType:'json',    
     success:function(data){    
          if( data.msg =="false" ) //服务器返回false,就将validatePassword2的值改为pwd2Error,这是异步,需要考虑返回时间    
          {    
               textPassword2.html("<font color='red'>业务密码不正确!</font>");    
               $("#validatePassword2").val("pwd2Error");    
               checkPassword2 = false;    
               return;    
           }    
      },    
      error:function(){}    
});   
 $.ajax({
                url:"/model_add_class/",
                type:'post',
                data:{'classname':input1},
                success:function (date) {
                  if (date==='OK'){
                      location.href='/class_list/'
                  }
                  else{
                        $('#error_message').text(date).parent().parent().addClass('has-error')
                  }
                }
                }
            )

2.$.ajax只提交form以文本方式,如果异步提交包含<file>上传是传过不过去,需要使用jquery.form.js的$.ajaxSubmit

 

可选。规定预期的服务器响应的数据类型。

  Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。

$.post、$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()

  示例:

四、$.ajax我的实际应用例子
Js代码 收藏代码

  serialize() 方法通过序列化表单值,创建 URL 编码文本字符串。

默认执行智能判断(xml、json、script 或 html)。

  1 打个比方吧,通常情况下,用户注册,那么用户首先得填写好表单,然后点提交,这样表单就会向服务发出一个请求,则服务器处理代码,如果用户存在,则返回一个信息。总之,就是所有的数据需要你点提交后,信息才会发送!
  而AJAX就相当于是模拟了一个信息发送请求,你可以在很多网站上注册的时候会发现,比如用户名输入“123”,那么它可能会提示你该用户已经存在,而给你的感觉是页面并没刷新,也就是并没有提交表单,而用户名又是存放在数据库内的,也就是说要查询用户名是否存在,就必须得发送表单的里的用户名,然后再在数据库中去查询。
  而这个过程就是用了AJAX来处理的,用户输入用户名,当表单的焦点发生变化的时候,则会触发AJAX,然后AJAX模拟一个GET或者POST请求给服务器,服务器就会处理传递过来的数据!而服务器在处理数据的时候,你可以做其它的,比较你可以填写密码或者其它的!

$.ajax({

     type: 'POST',

     url: url ,

    data: data ,

    success: success ,

    dataType: dataType

});
<script src="/static/jquery.cookie.js"></script>

<script>
    $.ajax({
        url:'',
        type:'',
        data:{},
        headers:{'X-CSRFToken':$.cookie('csrftoken')}       #key值名称是固定的。
    })
</script>

query在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作,不用考虑浏览器的诧异了。

  

//3.$.ajax拼接url的异步请求

  5过滤场景

//2.$.ajax序列化表格内容为字符串的异步请求

六 ajax应用场景

  视图函数代码

  其格式如下:

 

本文由美高梅赌堵59599发布于联系我们,转载请注明出处:方法通过Ajax请求加载服务器中的数据,真人手机网页版加载使用art.dialog前

关键词:

  • 上一篇:没有了
  • 下一篇:没有了