zoukankan      html  css  js  c++  java
  • js中的同步与异步

    同步:提交后等待服务器的响应,接收服务器返回的数据后再执行下面的代码   
    异步:与上面相反,提交后继续执行下面的代码,而在后台继续监听,服务器响应后有程序做相应处理,异步的操作好处是不必等待服务器而可以继续在客户端做其它事情。

    可以简单的理解认为同步是单线程的异步是多线程的          

    在使用异步请求时,有时需要将异步请求的结果返回给另一个js函数,此种情况下会出现未等异步请求返回请求结果,该发送请求所在js函数已经执行完后续操作,即已经执行return ,这样会导致return的结果为空字符。

    所以:若要在使用ajax请求后处理发送请求返回的结果,最好使用同步请求。

    这个例子会出现返回结果不正确的情况,因为ajax异步请求还未执行完,函数已经执行return了,

    function fn(){

    var result = " ";

    $.ajax({
    url : 'your url',
    data:{name:value},
    cache : false,
    async : true,
    type : "POST",
    success : function (data){
    do something....

    result = ....
    }

    // 对ajax中返回的data进行处理 ,也会出错

    return result ;

    异步请求方式: 

    $.ajax({
    url : 'your url',
    data:{name:value},
    cache : false,
    async : true,
    type : "POST",
    dataType : 'json/xml/html',
    success : function (result){
    do something....
    }
    }); 
    同步请求方式 
    $.ajax({
    url : 'your url',
    data:{name:value},
    cache : false,
    async : false,
    type : "POST",
    dataType : 'json/xml/html',
    success : function (result){
    do something....
    }
    }); 
  • 相关阅读:
    laravel打印SQL语句
    php扩展打开不起作用的原因, php数字显示2147483647的原因
    opacity与rgba
    package.json中devDependencies与dependencies的区别
    FileReader读取文件
    Vue双向绑定原理详解
    Vue2入门路线及资源
    gulp入门实践
    浏览器版本识别
    this用法
  • 原文地址:https://www.cnblogs.com/lxl0419/p/5778845.html
Copyright © 2011-2022 走看看