• 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
  • 微信公众号
您的位置:首页 > 程序设计 >jquery > 详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了ajax请求,async:false/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);
}

 

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

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

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

  • jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
  • 详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
  • 解决拦截器对ajax请求的拦截实例详解
  • Jquery通过ajax请求NodeJS返回json数据实例
  • jQuery使用deferreds串行多个ajax请求
  • 使用jQuery Ajax 请求webservice来实现更简练的Ajax
  • Jquery ajax请求导出Excel表格的实现代码
  • 详解JavaScript for循环中发送AJAX请求问题
  • jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
  • 浅析jQuery Ajax请求参数和返回数据的处理

相关文章

  • jQuery.form插件的使用及跨域异步上传文件
  • jquery通过load获取文件的内容并跳到锚点的方法
  • 基于jQuery实现放大镜效果
  • 基于jQuery的图片大小自动适应实现代码
  • jQuery实现点击弹出背景变暗遮罩效果实例代码
  • jQuery实现带动画效果的多级下拉菜单代码
  • jQuery中实现prop()函数控制多选框(全选,反选)
  • 使用jQuery和Bootstrap实现多层、自适应模态窗口
  • 深入理解jQuery layui分页控件的使用
  • jQuery实现径向动画菜单效果

文章分类

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

最近更新的内容

    • jQuery点击改变class并toggle及toggleClass()方法定义用法
    • jQuery选择器及jquery案例详解(必看)
    • JSON JQUERY模板实现说明
    • jQuery实现响应鼠标滚动的动感菜单效果
    • 让元素在网页中可拖动示例代码
    • jQuery-1.9.1源码分析系列(十)事件系统之事件包装
    • jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
    • 纯CSS打造的导航菜单(附jquery版)
    • 精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
    • jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果

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

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