原文地址:ajax实现给JavaScript中全局变量赋值

问题简化:

<script type="text/javascript">
var a=1 ;
function fun1(){
a=2;
}
function fun2(){
fun1();
alert(a);
}
</script>

存在全局变量a,需要在函数fun1中为变量a赋值,并使该值在函数fun2中同样生效。

问题扩展:

<script type="text/javascript">
var a=1 ;
function fun1(){
$.ajax({
type : "post",
url : "read_datas",
data : {
},
dataType : "json", //返回数据形式为json
async: false, //同步传输,并添加返回值,返回值应为已定义的全局变量 如a
success : function(data) { var tmp = JSON.parse(data);
a = tmp.nodes;
alert(nodes[1].ip);
} });
return a;
}
function fun2(){
fun1();
alert(a);
}
</script>

如代码所示,需要注意的是ajax中 async: false 和 return

第一点 ajax默认为异步操作,因此需要定义async: false实现同步操作

第二点 ajax后加入return a;

注意return的应为全局变量名a

ajax实现给JavaScript中全局变量赋值(转)的更多相关文章

  1. JavaScript中全局变量和局部变量的不同

    今天看到大神写得一片文章,自己对全局变量和局部变量的理解还是不够深刻,因此写到这篇文章,做个总结. 大神代码截图+理解文字如下: 解析:上面代码中,变量i是var命令声明的,在全局范围内都有效,所以全 ...

  2. javascript中全局变量的定义

    首先确实简单,在js脚本的函数外面使用. 但是要注意点: 不能写到jquery的框框代码里面,之前粗心放到$(function(){ })里面去了. <script type="tex ...

  3. js中全局变量和局部变量以及变量声明提升

    javascript中全局变量和局部变量的区别 转载前端小99 发布于2018-04-23 15:31:35 阅读数 2102  收藏 展开 [javascript] view plain copy ...

  4. 直播开始:'云榨汁机'诞生记--聊聊JavaScript中的'业务建模'

    闭包是JavaScript中的一个重要特性,在之前的博文中,我们说闭包是一个'看似简单,其实很有内涵'的特性.当我们用JavaScript来实现相对复杂的业务建模时,我们可以如何利用'闭包'这个特性呢 ...

  5. JavaScript中创建命名空间

    引用:http://ourjs.com/detail/538d8d024929582e6200000c   在JavaScript中全局变量经常会引起命名冲突,甚至有时侯重写变量也不是按照你想像中的顺 ...

  6. 在JavaScript中创建命名空间的几种写法

    在JavaScript中全局变量经常会引起命名冲突,甚至有时侯重写变量也不是按照你想像中的顺序来的,可以看看下面的例子: var sayHello = function() { return 'Hel ...

  7. JavaScript 中的对象深度复制(Object Deep Clone)

    JavaScript中并没有直接提供对象复制(Object Clone)的方法. JavaScript中的赋值,其实并不是复制对象,而是类似`c/c++`中的引用(或指针),因此下面的代码中改变对象b ...

  8. JavaScript中赋值运算符的使用

    JavaScript中的赋值运算可以分为简单赋值运算和复合赋值运算.简单赋值运算是将赋值运算符(=)右边表达式的值保存到左边的变量中:而复合赋值运算混合了其他操作(例如算术运算操作)和赋值操作.例如: ...

  9. jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法

    jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法   在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们 ...

随机推荐

  1. Python-ConfigParser获取配置项名称大小写问题

    C:\Python27\Lib\ConfigParser.py: def optionxform(self, optionstr): return optionstr.lower() 会将配置文件中的 ...

  2. Flexbox弹性布局,更优雅的布局

    Flexbox,更优雅的布局 Flex 布局教程:语法篇 Flex 布局教程:实例篇 2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得 ...

  3. python 下载地址

    https://www.python.org/ftp/python/

  4. C/C++.文件是否存在

    1. 2._access, _waccess.html(https://msdn.microsoft.com/en-us/library/1w06ktdy.aspx) int _access( con ...

  5. MYSQL常用函数(时间和日期函数)

    CURDATE()或CURRENT_DATE() 返回当前的日期 CURTIME()或CURRENT_TIME() 返回当前的时间 DATE_ADD(date,INTERVAL int keyword ...

  6. Axure 第一个原型 简单的登录页面

    设置所有元件的尺寸和位置的时候都是借助截图软件来调整位置的

  7. Spring Boot入门第一天:Hello, Spring Boot!

    原文链接 1. 新建一个Maven Web项目. 2. 配置pom.xml文件. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...

  8. Run-time code to create charts:

    tChart1.Series.Clear(); tChart1.Series.Add(new Steema.TeeChart.Styles.Bar());tChart1.Series[0].Clear ...

  9. datagrid复制

    private void Dgv_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)1) // Ctrl-A ...

  10. 20171114xlVba选定单行记录并打印

    Public Sub PrintSelectRow() Dim Wb As Workbook Dim iSht As Worksheet Dim rSht As Worksheet Dim pSht ...