jquery-ajax

load:直接加载$("xx").load(url,function(data){//回调函数}), 可在一个文件中加载另一个文件,如果返回的是html内容,jquery将html中的body元素内容的所有根节点放到包裝集中,如需查找根元素则需使用filter()函数,如需查找子元素使用find()函数。

post,get,ajax,serialize...

  • deferred对象
  1. promise:jquery1.5之后,调用ajax()方法后返回一个promise对象,这个对象

  var promise = $.ajax(url...);

  promise.done(function(data){//done表示成功之后

    

     }).fail(function(data){  })//fail表示失败之后

也可使用then(function(){//成功},function(){//失败})

使用var promise = when($.ajax(){},$.ajax(){}//两个方法)

  promise.done(function(data1,data2){}).fail(function(data1,data2){})//data1,data2分别表示两ajax方法的返回值

在函数内部可定义Deferred对象

$(function(){

  function wait(){

    var def = $.Deferred();

    setTimeout(function(){

     alert("invoke");

     //def.resolve("aa");//成功  

     def.rejectWith($("xx"),["bb"]);//执行失败,第一个参数为上下文环境

     },1000);

    return def.promise()

     }

  wait().done(function(data1){//data1为aa即resolve传过来的值}).fail(function(data2){//如果使用this则表示$("xx")对象,data2为bb});

})

以上代码可实现加载成功和失败的效果

     2.pipe

 $("xx").promise()

        .pipe(fn//此函数的返回值传递到下一个pipe中函数,如果是返回错误则返回Deferred对象

            //即使用var def = $.Deferred();def.reject("xx");return def;当某个pipe返回错误时,此后的pipe都默认返回错误的值并在fail函数中处理

        )

        .pipe(fn2//返回值相信传递)

        ...//多个pipe函数

        .done(fn3//成功)

        .fail(fn4//错误);

使用pipe可实现ajax方法的链式编程

 

 

 

 

 

posted on 2013-04-18 19:54  zcjava  阅读(161)  评论(0编辑  收藏  举报