阿富

web前端

导航

【jquery API】回调与ajax

                【回调列表】

$.Callbacks(flags)    //回调列表对象  \\$.Callbacks('once unique stopOnFalse')
    once:确保回调仅执行一次
    unique:自动去重
    stopOnFalse:回调返回false时立即中断后续的回调
    memory:当首次调用fire后,每次add都会立即触发当前add

.add(callbacks)    //回调列表中添加一个回调或回调的集合

.fire(args)    //调用所有的回调
.fireWith(context, args)    //指定this调用所有的回调
    .fired()    //判断fire|fireWith是否被调用过

.has(callback)    //回调列表中是否包含一个特定的回调

.disable()    //禁用回调列表对象
.lock()    //锁定在其当前状态的回调列表
    .locked()    //判断lock是否被调用过

.remove(callbacks)   //删除特定的回调或回调的集合
.empty()    //从列表中删除所有的回调



                【递延对象】
参考:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html

$.Deferred(f)    //创建一个递延对象  \\$.Deferred(f).then(f1, f2);

//类似于callback.add
.done(callbacks)    //成功状态的回调
.fail(callbacks)    //失败状态的回调
.then(callbacks, callbacks, [progressCallbacks])    //done与fail的结合
.progress(callbacks)    //生成进度通知的回调
.always(callbacks)    //请求完成时(成功或失败)的回调

//类似于callback.fire
.resolve(args)    //主动成功
.resolveWith(context, args)
.reject(args)    //主动失败
.rejectWith(context, args)
.notify(args)    //主动通知进度
.notifyWith(context, args)

.promise()    //返回promise对象(返回禁止改变状态的Deferred对象)
.promise(target)    //在target对象上部署Deferred接口
.state()    //获取当前状态 pending | resolved | rejectd



                【ajax】

$.ajax(url, [settings]) | $.ajax([settings])
$.ajax({
    url: 'xxx',
    type: 'GET | POST',
    async: true | false,
    timeout: 5000,
    cache: true | false,    //为false时相当于为URL添加'?t=' + Math.random()
    cache: false | true,    //针对script、jsonp
    dataType: 'script',    //字符串(script执行后才success)
    dataType: 'json',    //json数据
    dataType: 'jsonp',    //JSONP格式
    dataType: 'html',    //字符串
    dataType: 'text'    //字符串
    dataType: 'xml',    //XML文档
    data: '' | {} | ... ,    //GET时将附加到URL
    global: true | false,    //是否触发全局Ajax事件
    ...
    statusCode: {
        404: f1,
        200: f2
    }
    beforeSend: function(jqXHR){},    //返回false时则取消请求
    success: function(data, textStatus, jqXHR){},    //success | notmodified
    error: function(jqXHR, textStatus, errorMsg){},    //null | timeout | error | abort | parsererror    //Not Found ...
    complete: function(jqXHR, textStatus){}
})

//html
.load(url, [data], [complete])    //载入远程HTML并插入至DOM中,如果存在对象形式的data则使用POST
    url: 'xxx.html' | 'xxx.html #idSelector'
    complete: function(html, textStatus, jqXHR){}    //if(/success|notmodified/.test(textStatus)){}else{}

//GET
$.get(url, [data], [success], [dataType])
$.getJson(url, [data], [success])
$.getScript(url, [success])    //script执行后才success

//POST
$.post(url, [data], [success], [dataType])

//跨域jsonp
$.ajax({
    url: 'path',
    dataType: 'jsonp',
    jsonp: 'name', //name为服务器定义
    ...
    success: f,
    error: f
})
$.ajax({
    url: 'path?callback=name', //name为服务器定义
    dataType: 'jsonp',
    ...
    success: f,
    error: f
})

//全局设置
$.ajaxSetup(settings)    //ajax默认值
$.ajaxPrefilter([dataType], function(options, originalOptions, jqXHR){})    //ajax预处理
    options:当前AJAX请求的所有参数选项
    originalOptions:传递给$.ajax()方法的未经修改的参数选项

//ajax全局事件(只能绑在document上)
$(document).ajaxStart(callback)  //发起一个AJAX请求时,此时没有其他活跃的AJAX请求,该请求就会触发ajaxStart事件
$(document).ajaxStop(callback)  //一个AJAX请求结束时,此时没有其他活跃的AJAX请求,该请求就会触发ajaxStop事件

$(document).ajaxSend(callback)  //evt, jqXHR, settings
$(document).ajaxSuccess(callback)  //evt, jqXHR, settings
$(document).ajaxError(callback)  //evt, jqXHR, settings, textStatus
$(document).ajaxComplete(callback)  //evt, jqXHR, settings

//表单序列化(基于有效表单控件的name和value)
.serialize()    //序列化成字符串
.serializeArray()    //序列化成数组
    $.ajax({
        data: $('#myForm').serialize() | $('#myForm').find('input').serialize()
    })

 

posted on 2016-08-07 21:55  阿富  阅读(202)  评论(0)    收藏  举报