Ajax请求中async:false/true的作用分析

本文实例分析了Ajax请求中async:false/true的作用。分享给大家供大家参考,具体如下:

test.html代码:

<a href="javascript:void(0)" onmouseover="testAsync()">

asy.js代码:

function testAsync(){
  var temp;
  $.ajax({
    async: false,
    type : "GET",
    url : 'tet.php',
    complete: function(msg){
      alert('complete');
    },
    success : function(data) {
      alert('success');
      temp=data;
    }
  });
  alert(temp+'  end');
}

tet.php代码:

<?php
  echo "here is html code";
  sleep(5);
?>

async: false,(默认是true);

如上:false为同步,这个 testAsync()方法中的Ajax请求将整个浏览器锁死,只有tet.php执行结束后,才可以执行其它操作。

当async: true 时,ajax请求是异步的。但是其中有个问题:testAsync()中的ajax请求和其后面的操作是异步执行的,那么当tet.php还未执行完,就可能已经执行了 ajax请求后面的操作,

如: alert(temp+'   end');

然而,temp这个数据是在ajax请求success后才赋值的,结果,输出时会为空。

更多关于ajax相关内容感兴趣的读者可查看本站专题:《jquery中Ajax用法总结》、《JavaScript中ajax操作技巧总结》、《PHP+ajax技巧与应用小结》和《asp.net ajax技巧总结专题》

希望本文所述对大家ajax程序设计有所帮助。

(0)

相关推荐

  • ajax中的async属性值之同步和异步及同步和异步区别

    jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步.这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除.而异步则这个AJAX代码运行中的时候其他代码一样可以运行. ajax中async这个属性,用于控制请求数据的方式,默认是true,即默认以异步的方式请求数据. 一.async值为true (异步) 当

  • 细数Ajax请求中的async:false和async:true的差异

    实例如下: function test(){ var temp="00"; $.ajax({ async: false, type : "GET", url : 'userL_checkPhone.do', complete: function(msg){ alert('complete'); }, success : function(data) { alert('success'); temp=data; temp="aa"; } }); a

  • jQuery ajax 当async为false时解决同步操作失败的问题

    jQuery的ajax,当async为false时,同步操作失败.解决方案,jqueryasync 最近做项目遇到jQuery的ajax,当async为false时,同步操作失败的问题,上网搜索下,得到解决办法,这里就说下如何解决: 引发失败时代码: $.ajax({ url : 'your url', data:{name:value}, cache : false, async : true, type : "POST", dataType : 'json/xml/html', s

  • jQuery中的ajax async同步和异步详解

    项目中有这样一个需求,使用ajax加载数据返回页面并赋值,然后前端取出该值 这其中涉及到代码的顺序问题,有时后台还未返回数据,但已执行后面代码, 所以就会造成取不到值 $.ajax({ type: "post", url: "admin/PfmOptionRuleItem.do", success: function(data){ $("#ruleItem").val(data.ruleItem); //① } }); return $(&quo

  • 浅谈js的ajax的异步和同步请求的问题

    先来看以下代码: var flag=true; var index=0; $.ajax({ url: "http://www.jb51.net/", success: function(data){ flag=false; } }); while(flag){ index++; } alert(index); 请问最后alert的index的结果是多少? 可能有人会说0呗.实际上却没那么简单.大家可以自己试试看.可以看到最终程序进入了一个死循环!怎么会这样呢! 我们在看一段代码: va

  • 浅谈Jquery中Ajax异步请求中的async参数的作用

    之前不知道这个参数的作用,上网找了前辈的博客,在此收录到自己的博客,希望能帮到更多的朋友: test.html <a href="javascript:void(0)" onmouseover="testAsync()"> asy.js function testAsync{ var temp; $.ajax({ async: false, type : "GET", url : 'tet.php', complete: functi

  • jquery ajax属性async(同步异步)示例

    例1.jquery+ajax/" target="_blank">jquery ajax同步方式 复制代码 代码如下: $.ajax({url : 'test.php',type : 'post',async: false,//使用同步的方式,true为异步方式data : {'act':'addvideo', 'videoname':videoname},//这里使用json对象success : function(data){//code here...},fail

  • Ajax请求中async:false/true的作用分析

    本文实例分析了Ajax请求中async:false/true的作用.分享给大家供大家参考,具体如下: test.html代码: <a href="javascript:void(0)" onmouseover="testAsync()"> asy.js代码: function testAsync(){ var temp; $.ajax({ async: false, type : "GET", url : 'tet.php', com

  • 详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)

    test.html <a href="javascript:void(0)" rel="external nofollow" onmouseover="testAsync()"> asy.js function testAsync(){ var temp; $.ajax({ async: false, //同步请求 type : "GET", url : 'tet.php', complete: function(

  • 关于Ajax请求中传输中文乱码问题的解决方案

    今天遇到一个问题,有关ajax 请求中传输中文,遇到乱码的问题. 如下代码: function UpdateFolderInfoByCustId(folderId, folderName, custId) { $.ajax({ type: "Post", contentType: "application/x-www-form-urlencoded; charset=utf-8", url: "http://localhost/CRM/Ashx/HandK

  • Ajax请求中的异步与同步,需要注意的地方说明

    之前做项目时候,用到一个表格控件,它的数据是异步加载的,我在这个表格绑定数据的函数下面友做了一些业务处理,运行页面的时候,用浏览器在我写业务处理那地方打上断点跟踪,它确实执行了,可以最后显示的时候,它的处理被覆盖了,我很纳闷,当时也知道是这个表格绑定函数那出问题了,可是时间紧,它的函数是封装的,没有去具体跟踪,就直接让我的那部分业务处理延迟200ms执行,这样就好了,这是个笨法,不过也是个有效的办法,呵呵. 后来看了下文档,查了些资料,其实原理应该是这样的: 默认设置下,所有请求均为异步请求.如

  • 解决AJAX请求中含有数组的办法

    大家应该都发现了当我们发送AJAX请求的数据中带有数组时,是不能像普通JSON数据一样,直接放在data里发送给后台 比如有这样一个数据需要发送给后台: { "orderId": 22, "resourceJson": [ { "carCapacity": 223, "carNumber": "123", "driverInfo": "123", "fail

  • 如何从jQuery的ajax请求中删除X-Requested-With

    X-Requested-With常用于判断是不是ajax请求 但是有时我们会有需要删除X-Requested-With的情况 下面介绍一种方式 js代码 复制代码 代码如下: $.ajax({ url: 'http://www.zhangruifeng.com', beforeSend: function( xhr ) { xhr.setRequestHeader('X-Requested-With', {toString: function(){ return ''; }}); }, succ

  • ajax请求之返回数据的顺序问题分析

    本文实例分析了ajax请求之返回数据的顺序问题.分享给大家供大家参考,具体如下: ajax请求一个url,php后端处理后,数组为如下格式: 复制代码 代码如下: $a = array( '-1'=> 10 ,'-3' => 2, '0' => '5' ,'-2' => 4); 然后使用php的asort函数对数组按照value进行升序排序后,如下: 复制代码 代码如下: $a = array('-3' => 2, '-2' => 4,'0' => '5', '-

  • 浅析ajax请求json数据并用js解析(示例分析)

    自从接触了jquery就喜欢上了前端开发,而且深深感受到了前端开发的强大与重要之处.同时也想为asp.net鸣不平,事实上asp.net并没有臃肿,说它臃肿的人无非是那些不了解它的人,可能他们看见过一些asp.net低级程序员在不断往页面里拖控件,然后发现生成的页面中含有大量的垃圾代码,而且几乎把所有的逻辑处理都写在了服务器端,觉得服务器压力太大了.事实上,刚入门asp.net的人会有拖控件的习惯,但是当你再深入你会发现,最终asp.net的开发模式还是跟PHP.jsp等其它web开发模式是一样

  • 在实战中可能碰到的几种ajax请求方法详解

    前言 最近在做一个针对单个节点测速的功能页面,测速的逻辑是,测上传速度时,前端传5m数据给server,记录上传和返回数据的时间,测下载速度时,从server下载1m的数据,记录下载和下载成功的时间,上传和下载用的是ajax同步以避免客户端带宽阻塞的问题,并进行3次取平均值.在开发过程过,因为ajax同步异步的问题,走了不少弯路,特地也把之前遇到的业务逻辑整理汇总一下. ajax请求方法如下 一.普通的ajax,async即同步异步处理,success之后,会有data返回值,status请求状

随机推荐