`
qingwenxiutong
  • 浏览: 19221 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

AJAX回调函数内部给全局变量赋值后,在外部调用居然没有被赋值的原因

阅读更多

window.onload = function()

{

   var oCount = 0;//计数器

 

   //其他代码

   $.ajax({
          type: "POST",
          url: "__URL__"+"/insertimportseller",
         
          data:"email="+eml,
           success:function(data){
                if(data == 1)

                {                         
                   oCount++;

                   alert(oCount);//   得到的还是累加后的值
                }

   }

alert(oCount);//   得到的还是0

 

}

 

在外部调用oCount,发现ajax回调的函数根本没有给oCount赋值成功的原因就是:ajax同步 异步的问题。

解决办法就是

在以上方法是中使用ajax的同步调用async:false, ),只有在获取到了data值并赋值给result以后才会返回result完成该方法的调用。若设为async:true,
例:

window.onload = function()

{

   var result = text;

 

   //其他代码

   $.ajax({
          type: "POST",
          url: "__URL__"+"/insertimportseller",
          async:false,
          data:"email="+eml,
           success:function(data){
                if(data == 1)

                {                         

                   result = data;
                }

   }

 return result;

 

}

 

 

分享到:
评论
1 楼 minjie56 2018-04-24  
有没有办法 在异步的机制下 也能获取数据呢

相关推荐

    浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法

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

    解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)

    【详细错误】:由于出现错误 c00ce56e 而导致此项操作无法完成 【造成原因】:未指定输出编码格式。...异步调用 异步回调)浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法php 异

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    AsyncAjaxSample Ajax异步调用的完整示例 第2章(/C02/) 2.1.htm 3段JS使用形式 2.2.htm 不同浏览器使用“<noscript></noscript>” 2.3.htm 调用单独的JS文件 2.3.js 一个单独的...

    《javaScrip开发技术大全》源代码

    • sample04.htm 在函数体中定义全局变量 • sample05.htm 使用没有定义的变量 • sample06.htm 重复定义变量 • sample07.htm 引用未赋值的变量 • sample08.htm 变量的...

    大名鼎鼎SWFUpload- Flash+JS 上传

    所有这些事件都可以在一个SWFUpload实体中被调用,这意味着在这些事件对应的函数中,你可以用 this 关键字来代替引用SWFUpload实体。  + fileDialogComplete (number of files selected)  - 触发条件  1. 用户...

    JavaScript权威指南(第六版) 清晰-完整

    8.2 函数调用 8.3 函数的实参和形参 8.4 作为值的函数 8.5 作为命名空间的函数 8.6 闭包 8.7 函数属性、方法和构造函数 8.8 函数式编程 第9章 类和模块 9.1 类和原型 9.2 类和构造函数 9.3 JavaScript中Java式的类...

    JavaScript权威指南(第6版)(中文版)

    8.2 函数调用 8.3 函数的实参和形参 8.4 作为值的函数 8.5 作为命名空间的函数 8.6 闭包 8.7 函数属性、方法和构造函数 8.8 函数式编程 第9章 类和模块 9.1 类和原型 9.2 类和构造函数 9.3 JavaScript中Java式的类...

    JavaScript权威指南(第6版)

    8.2 函数调用 8.3 函数的实参和形参 8.4 作为值的函数 8.5 作为命名空间的函数 8.6 闭包 8.7 函数属性、方法和构造函数 8.8 函数式编程 第9章 类和模块 9.1 类和原型 9.2 类和构造函数 9.3 JavaScript中Java式的类...

    ECMAScript 2018快速入门 高清完整PDF

    1.3.3避免全局变量成为全局对象的属性 3 1.3.4简化代码 3 1.3.5模拟私有成员 4 1.4const语句 5 1.5建议的方式 6 1.6小结 6 第2章表达式和运算符 7 2.1解构赋值 7 2.1.1自定义变量名 8 2.1.2剩余项 8 2.1.3默认值 9 ...

    JavaScript权威指南(第6版) 中文版

    8.2 函数调用 168 8.3 函数的实参和形参 173 8.4 作为值的函数 178 8.5 作为命名空间的函数 181 8.6 闭包 182 8.7 函数属性、方法和构造函数 188 8.8 函数式编程 194 第9章 类和模块 201 9.1 类和原型 202 9.2 类和...

    整理后java开发全套达内学习笔记(含练习)

    export ORACLE_SID --变全局变量 unset ORACLE_SID --卸载环境变量 ORACLE_HOME=... --安装路径;直接用一句语句也可以,如下 export ORACLE_HOME=/oracledata/.../bin: BufferedReader建构时接受java.io.Reader...

    php网络开发完全手册

    7.5.6 通过回调函数执行正则表达式 7.5.6 的搜索和替换——preg_replace_ 7.5.6 callback 114 7.5.7 用正则表达式进行字符串分割 7.5.7 ——preg_split 115 7.6 字符操作的注意事项 117 7.7 小结 118 第8章 数组操作...

    JavaScript权威指南(第6版)

    8.2 函数调用 168 8.3 函数的实参和形参 173 8.4 作为值的函数 178 8.5 作为命名空间的函数 181 8.6 闭包 182 8.7 函数属性、方法和构造函数 188 8.8 函数式编程 194 第9章 类和模块 201 9.1 类和原型 202 9.2 类和...

    JavaScript权威指南(第6版)中文文字版

    8.2 函数调用 168 8.3 函数的实参和形参 173 8.4 作为值的函数 178 8.5 作为命名空间的函数 181 8.6 闭包 182 8.7 函数属性、方法和构造函数 188 8.8 函数式编程 194 第9章 类和模块 201 9.1 类和原型 202 9.2 类和...

    ZendFramework中文文档

    AjaxContext 函数 7.8.4.4. FlashMessenger 7.8.4.4.1. 简介 7.8.4.4.2. Basic Usage Example 7.8.4.5. JSON 7.8.4.6. 转向器(Redirector) 7.8.4.6.1. 介绍 7.8.4.6.2. 基础用例 7.8.4.7. ViewRenderer ...

Global site tag (gtag.js) - Google Analytics