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....
    }
    }); 
  • 相关阅读:
    开源ITIL管理软件iTop 2.5-2.6安装
    并发服务器
    套接字通信
    libevent
    gdb调试
    值得收藏的技术社区
    关于博客园随笔编辑页面内容不刷新(空白)的问题解决
    嵌入式Web框架
    内存地址的传递问题
    linux文件缓冲区
  • 原文地址:https://www.cnblogs.com/lxl0419/p/5778845.html
Copyright © 2011-2022 走看看