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

    谢舒心,转载请表明出处
  • 相关阅读:
    当···时发生了什么?
    数据存储-3、数据库分库分表思路
    数据存储-2、反模式设计
    数据存储-1、MySQL 索引使用的注意事项
    锁机制-4、synchronized 与 lock 的区别
    锁机制-3、synchronize 实现原理
    锁机制-1、乐观锁与悲观锁以及乐观锁的一种实现方式
    线程-11、线程的生命周期
    线程-10、线程池的几种方式
    线程-9、线程池的实现原理
  • 原文地址:https://www.cnblogs.com/xieshuxin/p/6705715.html
Copyright © 2011-2022 走看看