zoukankan      html  css  js  c++  java
  • jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法

    在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:true(默认情况),如:

    function ManageCommentText(text) {
        var result = text;
        $.ajax({
            data: "get",
            url: "GetComments.aspx",
            data: "type=getText&commentText=" + text,
            cache: false,
            async: false,
            success: function (data) {
                result = data; // 注意这里不可以在前面加var 关键字
            }
        })
        return result;

    以上方法是ajax的同步调用,只有在获取到了data值并赋值给result以后才会返回result完成该方法的调用。若设为async:true,
    则会未等到获取data值就已经返回了result。

    另一个解决办法就是将你的代码直接写到success方法里。(根据你的业务并不是所有的都可以直接写到success里的)。

  • 相关阅读:
    JVM体系结构和工作方式
    ClassLoader工作机制
    Javac编译原理
    类与类之间的几种关系
    一周总结汇总_2016-09-04
    一周规划汇总_2016-09-04
    Java基础知识笔记(一:修饰词、向量、哈希表)
    控制反转IoC简介
    DBCP连接池简介
    Struts与Struts2的区别
  • 原文地址:https://www.cnblogs.com/robinunix/p/8277269.html
Copyright © 2011-2022 走看看