• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > 详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了ajax async:false,ajax async,ajax中async,jquery ajax async,ajax async true等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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);
}

</div>

 

tet.php

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

</div>

说明

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 在外部调用问题)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2017-05-11为Jquery EasyUI 组件加上清除功能的方法(详解)
  • 2017-05-11微信小程序 label 组件详解及简单实例
  • 2017-05-11jQuery插件Echarts实现的渐变色柱状图
  • 2017-05-11Angular.js中ng-if、ng-show和ng-hide的区别介绍
  • 2017-05-11Vue.Js中的$watch()方法总结
  • 2017-05-11jQuery点击弹出层弹出模态框点击模态框消失代码分享
  • 2017-05-11AngularJS执行流程详解
  • 2017-05-11JSONP跨域请求
  • 2017-05-11进阶之初探nodeJS
  • 2017-05-11JS中绑定事件顺序(事件冒泡与事件捕获区别)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • input输入密码变黑点密文的实现方法
    • 基于vue的fullpage.js单页滚动插件
    • 微信小程序教程系列之设置标题栏和导航栏(7)
    • 利用node.js本地搭建HTTP服务器
    • jQuery使用ajax方法解析返回的json数据功能示例
    • Vue.js render方法使用详解
    • localStorage的黑科技-js和css缓存机制
    • Angular下H5上传图片的方法(可多张上传)
    • 详解webpack es6 to es5支持配置
    • js实现按座位号抽奖

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有