zoukankan      html  css  js  c++  java
  • web面试常见问题补充

    jquery Ajax

    $ajax({

    Url:”test.html”,-----发送请求的地址

    Async:true;------异步操作

    Cache:true,-----可以从缓冲中加载

    Type:”GET”,------请求方法

    Datatype:”json”,-------服务器返回数据类型

    Sucess:function(data){ ----------调用成功语句

    If(data==”OK”){

    Console.log(data);

    }

    },

    error:function(data){-----------------------(errorfunction(XMLHttpRequest, textStatus)失败语句

    If(data==”OK”){

    Console.log(data);

    }

    },

    complete:function(data){--------------结束语句

    If(data==”OK”){

    Console.log(data);

    }

    },

    })

    $.get(

    Url:”test.html”,{name:”xsx”,age:”19”},function(data){

    Console.log(data);

    })

    $.post(

    Url:”rest.xml”,{uname:”xsx”,age:”20”},function(data){

    If(data==”OK”){

    Console.log(data);

    }

    })

    Jquery Deferred(jquery promis)

    $.Deferred()返回一个对象,我们可以称之为Deferred对象,上面挂着一些熟悉的方法如:done、fail、then等。jquery就是用这个Deferred对象来注册异步操作的回调函数,修改并传递异步操作的状态。

    有一个弊端,因为执行runAsync()可以拿到def对象,而def对象上又有resol方法,可以在外部进行修改,回调函数会停止。

    jquery提供了一个promise方法,就在def对象上,他可以返回一个受限的Deferred对象,所谓受限就是没有resolve、reject等方法,无法从外部来改变他的状态

    Function run(){

    Var def=$.Deferred();

    setTimeout(function(){

    Console.log(“执行完成”);

    def.resolve=”随便什么都行”;

    },2000);

    Return def.promise();

    }

    run.done(function(){

        console.log(“执行成功”)

    })

    .fail(function(){

    Console.log(“函数失败”);

    })

     

    $when方法

    jquery中,还有一个$.when方法来实现Promise,与ES6中的all方法功能一样,并行执行异步操作,在所有的异步操作执行完后才执行回调函数。不过$.when并没有定义在$.Deferred中,看名字就知道,$.when,它是一个单独的方法。与ES6的all的参数稍有区别,它接受的并不是数组,而是多个Deferred对象

    $.when(runAsync(), runAsync2(), runAsync3())

    .then(function(data1, data2, data3){

        console.log('全部执行完成');

        console.log(data1, data2, data3);

    });

     

    总结一下就是$.Deferred实现了Promise规范,then、done、fail、always是Deferred对象的方法。$.when是一个全局的方法,用来并行运行多个异步任务,与ES6的all是一个功能。ajax返回一个Deferred对象,success、error、complete是ajax提供的语法糖,功能与Deferred对象的done、fail、always一致。就酱。

    参考网址:http://www.cnblogs.com/lvdabao/p/jquery-deferred.html

    http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html

    谢舒心,转载请表明出处
  • 相关阅读:
    Java的自动拆箱和装箱
    记录一次买阿里云服务器、建站的经验
    java中的位运算符
    java String拼接时候的一个小问题
    java获取各类容器和数组的长度
    java多线程:循环屏障
    Spring框架10:spring编程式事务控制
    Spring框架9:spring实现声明式事务控制
    Spring框架8:spring使用AOP实现事务控制
    C++ 中的bind
  • 原文地址:https://www.cnblogs.com/xieshuxin/p/6705715.html
Copyright © 2011-2022 走看看