繁体   English   中英

在ajax调用后保留一个javascript变量

[英]Keep a javascript variable after an ajax call

我是javascript和jQuery的新手。 我正在使用ajax调用从服务器获取数据。 事实是,我在调用后丢失了我的JavaScript变量。这就是我所做的:变量是在任何函数之外定义的,并在其他函数中处理。

var a = 0;
function myfunction(url){
$.ajax({
        url: url,
        timeout: 20000,
        success: function(data){
                  // Do some stuff
                  // The a variable is now undefined
                },
        error: function(){
                  // Do some stuff
                }
       });
}

一切工作正常,唯一的事情是我需要保留变量……但看起来好像已经消失了..

有人知道为什么吗?

谢谢

您说您正在其他函数中使用变量(但不要向我们展示该函数)。 但是,该功能可能在您的AJAX调用完成之前正在运行。 这就是“异步”的含义-它们不会同时发生。

要解决此问题,请在success回调中添加更多代码,该代码仅在a变量更改后才能运行。

这可以正常工作,并且该URL确实在作用域内。 您应该检查的是是否遇到错误-这将阻止成功运行(抛出一个alert("error");或者在其中进行类似的测试)。

我在FireFox中使用Firebug来帮助我。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript">

var a = 0;

function doSomething (url){
    $.ajax({
            url: url,
            timeout: 20000,
            success: function(data){
                      alert(a);
                    },
            error: function(){
                      // Do some stuff
                    }
           });
    }

</script>

<a href="#" onclick="doSomething('variableScope.html'); return false;">Do it</a>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM