`

异步调用async:true

    博客分类:
  • ajax
 
阅读更多

  调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:true(默认情况)。ajax的同步调用,只有在获取到了data值并赋值给result以后才会返回result完成该方法的调用。若设为async:true,则会未等到获取data值就已经返回了result。解决办法就是将你的代码直接写到success方法里(根据业务)。同步async:false需要等待返回结果才能继续,是在一条直线上的队列,异步async:true不必等待,且不在一个队列上,一般要监听异步的结果。开始var fwlx_list = "";是全局变量,当async:true异步请求时,该参数没有获取data的result,一开始并不知道原因,百度后,就这么将该参数写入success内,就得到success的result。

 

<script type="text/javascript">
var fwlx_list = $("#fwlx_list");
$(function(){
 $.ajax( {
  type : "POST",
  async : true,
  url :  "${pageContext.request.contextPath}/index/fwlx_list",
  success : function(data) {
   var fwlx_list_html = "";
   var json = eval("("+data+")");
   for (var prop in  json) {  
    fwlx_list_html += "<div class='bgsbcon' >";
    fwlx_list_html += "<ul>";
    fwlx_list_html += "<li style='width:90px; text-align:left;'><a href='#' style='font-size: 15px;' class='currgy'>"+prop+"</a></li>";
    for(var i in json[prop]){
      fwlx_list_html += "<li><a";
      fwlx_list_html += " href='${pageContext.request.contextPath}/index/pager_content?fwlx="+json[prop][i].wxFuwuxiaoleiName+"&px=${px}&area=${dist}'";
      fwlx_list_html += " name='chk_type'> ";
      if("${type}" == json[prop][i].wxFuwuxiaoleiName){
	fwlx_list_html += "<font color='red'>"+json[prop][i].wxFuwuxiaoleiName+"</font>";
      }else{
	fwlx_list_html += ""+json[prop][i].wxFuwuxiaoleiName+"";
      }
      fwlx_list_html += "</a></li>";
    }
    fwlx_list_html += "</ul>";
    fwlx_list_html += "</div>";
    fwlx_list_html += "<div style='clear: both;'></div>";
   }  
   fwlx_list.append(fwlx_list_html);
  }
 });
});
</script>

     

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
 </head>
 <body>
  <div class="product-wrap posone"  id="fwlx_list"></div>
 </body>
</html>

   

 

分享到:
评论

相关推荐

    浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法

    在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:true(默认情况),如: ...

    第四课:Dubbo调用模块详解1

    -- 异步调async:true 异步调用 false 同步调用--&gt; &lt;dubbo:method name="sayHello1" async="fal

    第四课:Dubbo调用模块详解 (2)1

    -- 异步调async:true 异步调用 false 同步调用--&gt; &lt;dubbo:method name="sayHello1" async="fal

    augmentor:可扩展,通用,像面向大众的钩子一样React

    如果您一次调用多个状态更改,您可以通过可选参数{async: true}选择异步执行。 进行此更改是为了使增强器默认值类似于来自其他基于钩子的库的开发人员所期望的。 可用的钩子 基本钩子 ,带有可选的{async: true, ...

    Jquery Ajax解析XML数据(同步及异步调用)简单实例

    代码如下:$.ajax({ async: true, // 默认true(异步请求) cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。 type: “POST”, // 默认:GET 请求方式:[POST/GET] dataType: “xml”, //...

    JavaScript 异步调用框架 (Part 5 – 链式实现)

    调用入口 链式调用存在Async.go方法和Async.chain方法两个入口,这两个入口本质上是一致的,只是Async.chain方法在调用时先不提供初始参数,而Async.go方法在调用时提供了初始参数并启动异步调用链。 代码如下: ...

    javascript 支持链式调用的异步调用框架Async.Operation

    代码如下: Async = {}; Async.Operation = function(options) { options = options || {}; var callbackQueue = []; var chain = (options.chain && options.chain === true) ? true : false; var started = false; ...

    async.h:C的无堆栈异步子例程

    Async.h-异步,无堆栈子例程 从C#,Rust和JS中发现的原型线程和异步/等待中汲取灵感,这是基于Duff设备的C的仅标头异步/等待实现。... 异步调用func(state)并在执行完成后返回true(可选)。 您还可以直接直接调用fun

    meteor-async-template-helpers:在模板助手中使用异步函数

    $ meteor add hpx7:async-template-helpers 用法 RegisterAsyncHelper ( options , fn ) options.template :要在其上注册助手的模板。 options.helperName : 辅助函数的名称 options.shared :一个布尔值,控制...

    ajax经典怎样传输数据

    async: true, // 默认true(异步请求) cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。 type: "POST", // 默认:GET 请求方式:[POST/GET] dataType: "xml", //默认["xml"/"html"] 返回...

    使用异步操作响应 useReducer

    这是一个用于扩展 useReducer 调度的小型库,以便调度异步操作调用异步函数。 安装 npm install use-reducer-async 用法 const initialState = { sleep: false, }; const reducer = (state, action) =&gt; { switch ...

    react-use-state-async

    React使用状态异步一个自定义的钩子触发器调用异步函数,每个依赖项都会更改。 支持保存和更新以获取数据。安装与npm npm install --save react-use-state-async 带纱yarn add react-use-state-async用法 import * ...

    Ajax异步获取html数据中包含js方法无效的解决方法

    页面上使用js写了一个获取后台数据的方法 function data() { var tab = $("#dic") $.ajax({ url: '../demo.ashx?... async: true, success: function (data) { //console.log(data); var parentStr = ''; $.ea

    js 实现ajax发送步骤过程详解

    js发送ajax发送,分步骤进行 ajax的核心 是XMLHttpRequest, 步骤1:创建一个对象xmlrequest,在主流的浏览器都支持new , var xmlhttp = new XMLHttpRequest... async :表示异步请求,可以不写,默认是True, xmlhttp.

    async-data:用于异步数据检索的 Web 组件

    异步数据 声明性 ajax。 安装 npm install async-data 用法 首先,加载[removed] 实例化它: &lt;async src='https://someapi.com'&gt;&lt;/async&gt; 从src属性指示的资源中获取数据。 如果元素具有auto属性,则只要...

    jquery中的ajax方法怎样通过JSONP进行远程调用

    这一节主要演示下在JQUERY中的ajax方法怎样通过JSONP进行远程调用 首先介绍下$.ajax的参数 type:请求方式 GET/POST url:请求地址 async:布尔类型,默认为true 表示请求是否为异步,如果为false表示为同步。...

    在jquery中的ajax方法怎样通过JSONP进行远程调用

    这一节主要演示下在JQUERY中的ajax方法怎样通过JSONP进行远程调用 首先介绍下$.ajax的参数 type:请求方式 GET/POST url:请求地址 async:布尔类型,默认为true 表示请求是否为异步,如果为false表示为同步。...

    解决ajax请求后台,有时收不到返回值的问题

    jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现

    async-filter-each:async#filter()作为模块

    每个异步过滤器 模块化和较小的包大小,将作为独立模块使用。 安装 npm install async-filter-... 每个迭代器调用的回调仅接受true或false的单个参数; 它不首先接受错误参数! 这与节点库与fs.exists等真值测试fs.exi

    async-priority-queue:专注于优先队列的 caolanasync 分支

    异步js 分支,只包含优先级队列文档控制流实用程序控制流 worker(task, callback) - 用于处理排队任务的异步函数,完成后必须调用其callback(err)参数,并将可选的error作为参数。 concurrency - 一个integer用于...

Global site tag (gtag.js) - Google Analytics