zoukankan      html  css  js  c++  java
  • jquery ajax异步和同步从后天取值

    最近使用jquery的ajax,发现有些效果不对,ajax请求后返回的json串回来了,但是执行顺序有问题。

    var isReload = false;
    
    $.post('/home/DetectCachedLoginInfor/',
    
    function (result) {
    if (result.errorMsg) {
    
    if (result.errorMsg) { alert(result.errorMsg); isReload = true; }
    }
    }, 'json');
    
    if (isReload)
    {
    OpenReloginForm();
    return false;
    }

    发现得到返回数result.errorMsg了,但是isReload 不能给赋值为true,下面的if (isReload){...}不能被顺利执行

    最后发现是post的异步执行顺序问题,所以研究了下,写了以下总结

    --------因为post默认为异步请求,数据是异步返回的不是顺序执行一直到数据返回才执行下一步。

    所以我们更换取值的方法,ajax--async: false 即可

    var isReload = false;
    
    $.ajax({
    url: '/home/DetectCachedLoginInfor/',
    async: false, // 注意此处需要同步,因为返回完数据后,下面才能让结果的第一条selected 
    type: "POST",
    dataType: "json",
    success: function (result) {
    if (result.errorMsg) { alert(result.errorMsg); isReload = true; }
    }
    });
    
    if (isReload)
    {
    OpenReloginForm();
    return false;
    }
  • 相关阅读:
    Servle生命周期
    Nginx反向代理
    redis
    java二分查找
    Redis集群的数据一致性
    springmvc中controller不要定义全局变量
    elasticsearch-6.7.1和kibana-oss-6.7.1的Linux安装
    centos7.0查看IP,Linux基本命令
    高并发ConcurrentHashMap 1.8的原理
    JS 循环 while for do while
  • 原文地址:https://www.cnblogs.com/xp1056/p/5695980.html
Copyright © 2011-2022 走看看