Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 209|回复: 0

[默认分类] jquery post 同步异步总结

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-5-25 13:50:22 | 显示全部楼层 |阅读模式
    最近在测试,发现有些效果不对,最后发现是post的执行顺序问题,所以研究了下,写了以下总结
    1.post被请求多次,解决方法:
    连接加入随机数 rand=""+Math.random()

    1. $.post("/Control/webControl.ashx?rand ="+Math.random(), { Method: "LoginIn", Parems: ps }, function (data, textStatus) {
    2.                 $("#divOver").css("visibility", "hidden");
    3.                 switch (data) {
    4.                     case "1":
    5.                         window.location = "/default.aspx";
    6.                         break;
    7.                     case "0":
    8.                         $("#tips").text("找不到该用户");
    9.                         u.focus();
    10.                         changevcode();
    11.                         errcount++;
    12.                         break;
    13.                     case "-1":
    14.                         $("#tips").text("用户或密码错误");
    15.                         changevcode();
    16.                         c.val("").focus();
    17.                         errcount++;
    18.                         break;
    19.                     default:
    20.                         alert(data);
    21.                 }
    22.             });
    复制代码


    2.因为post默认为异步请求,可是有时候我们会发现,本来要求请求马上出现,可是异步会导致后面突然再执行,这样就出问题了
    所以,我们需要加入

    1. $.ajaxSetup({   
    2.             async : false  
    3.         });
    复制代码


    3.如果需要有些同步有些异步,那么我们应该使用最原始的ajax请求,然后把async设置为false

    1. $.ajax({  
    2.          type : "post",  
    3.           url : "register/RegisterState",  
    4.           data : "test=" + test,  
    5.           async : false,  
    6.           success : function(data){  
    7.             data = eval("(" + data + ")");  
    8.             aDataSet = data;  
    9.           }  
    10.      });
    复制代码


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-6-1 10:00 , Processed in 0.363671 second(s), 37 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表