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


Posted in Javascript onFebruary 10, 2017

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(msg){
      alert('complete');
    },
    success : function(data) {
      alert('success');
      temp=data;
    }
  });
  alert(temp);
}

 

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默认为异步调用,所以很少能直接拿到ajax的返回值。但有时候由于业务需要还必须要通过ajax来拿,那么我这里提供两种方案。

具体方法:

1、就像通过设置async:false让其异步变同步;

2、可以将接下来需要使用到的参数在success之内执行。

这两种方案,你根据你项目的具体实际选择一个。

使用第一种相对来讲,假如你对性能要求不是太大可以选择。

以上这篇详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
几个高效,简洁的字符处理函数
Apr 12 Javascript
jQuery 判断元素上是否绑定了事件
Oct 28 Javascript
DD_belatedPNG,IE6下PNG透明解决方案(国外)
Dec 06 Javascript
浅谈JavaScript实现面向对象中的类
Dec 09 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
Sep 15 Javascript
js阻止浏览器默认行为触发的通用方法(推荐)
May 15 Javascript
JS前端笔试题分析
Dec 19 Javascript
jQuery DOM节点的遍历方法小结
Aug 15 jQuery
基于node.js之调试器详解
Aug 22 Javascript
webpack-mvc 传统多页面组件化开发详解
May 07 Javascript
element中el-container容器与div布局区分详解
May 13 Javascript
JS轮播图的实现方法2
Aug 25 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
Feb 10 #Javascript
jQuery基于Ajax方式提交表单功能示例
Feb 10 #Javascript
Bootstrap轮播图学习使用
Feb 10 #Javascript
微信小程序模板之分页滑动栏
Feb 10 #Javascript
三种方式实现瀑布流布局
Feb 10 #Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
Oct 26 #Javascript
Ionic+AngularJS实现登录和注册带验证功能
Feb 09 #Javascript
You might like
一个php作的文本留言本的例子(二)
2006/10/09 PHP
PHP漏洞全解(详细介绍)
2012/11/13 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
javascript里的条件判断
2007/02/27 Javascript
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
利用JS延迟加载百度分享代码,提高网页速度
2013/07/01 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
理解JavaScript原型链
2016/10/25 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
2018/01/09 jQuery
[原创]jquery判断元素内容是否为空的方法
2018/05/04 jQuery
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
详解Vue.js 响应接口
2020/07/04 Javascript
python的dict,set,list,tuple应用详解
2014/07/24 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
python排序函数sort()与sorted()的区别
2018/09/18 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
法国女性内衣购物网站:Glamuse
2019/05/13 全球购物
4s店机修工岗位职责
2013/12/20 职场文书
大学毕业感言
2014/01/10 职场文书
2014植树节活动总结
2014/03/11 职场文书
宣传工作经验材料
2014/06/02 职场文书
大学新生军训自我鉴定
2014/09/18 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
机器人总动员观后感
2015/06/09 职场文书
特种设备安全管理制度
2015/08/06 职场文书
python读取mnist数据集方法案例详解
2021/09/04 Python
spring cloud 配置中心客户端启动遇到的问题
2021/09/25 Java/Android