zoukankan      html  css  js  c++  java
  • Jquery等待ajax执行完毕继续执行(断点调试正常,运行异常)

    以前写过一个程序,发现用断点调试的时候,一步步的运行,程序是可以的,但是去了断点程序就出现了问题。

     $(document).ready(function(){

         var arra=new Array();

         $.post("/getdata",null,function(data){

             for(var i=0;i

                  arra.push(data);

             }

        });

       $("#item").val(data[0]);

    });

    发现自己犯了一个错误。首先,看一下$.post与$.ajax

    $.post其实是$.ajax的特写,真正的形式为

    $.ajax({ 
               url: "/getdata", 
               type: "post", 
               data: null,

               cache:false,

               async:true,
               contentType:"application/json;charset=utf-8",  
             success:function(data){

             } 

    });

    ajax默认请求为异步的,也就是默认将async设置为true.对上面的程序进行修改:async 参数设置为 false

     $(document).ready(function(){

         var arra=new Array();

        $.ajax({ 
               url: "/getdata", 
               type: "post", 
               data: null,

               cache:false,

               async:false,
               contentType:"application/json;charset=utf-8",  
              success:function(data){       

                 for(var i=0;i

                      arra.push(data);

                  }

             } 

       });

       $("#item").val(data[0]);

    });

    note:若使用默认的异步模式,发送ajax异步后,在等待server端返回数据的过程中,前段程序会继续执行ajax块之后的内容,直到server返回结果。这段时间中,程序拥有多个执行的线程,这样可以适当的提高性能和用户体验。而使用同步方式时,发送ajax请求后,程序会一直等待server端,直到server端返回数据。

  • 相关阅读:
    Linux .bashrc文件设置快速访问快捷键
    Fiddler如何添加ServerIP显示
    软件测试工程师常用工具汇总
    [ASP.NET Core开发实战]基础篇04 主机
    《数据结构与算法之美》24——堆的应用
    [ASP.NET Core开发实战]基础篇03 中间件
    《数据结构与算法之美》23——堆和堆排序
    [ASP.NET Core开发实战]基础篇02 依赖注入
    [ASP.NET Core开发实战]基础篇01 Startup
    [ASP.NET Core开发实战]开篇词
  • 原文地址:https://www.cnblogs.com/asdyzh/p/9824423.html
Copyright © 2011-2022 走看看