我们可以将jquery POST/GET回调函数的数据和状态保存在变量中以供进一步使用吗?
Can we save jquery POST/GET callback function's data and status in a variable for further use?
我想将数据和状态的值保存在变量中,并在jquery GET/POST函数的右括号之后使用它。但是警报只有在 .get 大括号内时才会出现。
$(document).ready(function(){
$.get("demo_test.asp",function(data,status){
v = data;
});
alert("Data:"+v);
});
正如 Jasper 所说,您的alert
在请求完成之前被触发(异步!因此,您有两种选择:
在回调中执行逻辑:
$.get("demo_test.asp",function(data,status){
v = data;
alert("Data:"+v);
//Process stuff here
});
或者将接收到的data
传递给另一个函数并在那里使用它
$.get("demo_test.asp",function(data,status){
v = data;
doStuff(v);
});
function doStuff(param) {
console.log(param);
}
你是绝对正确的; 代码正在正常工作...原因如下:
页面加载并开始运行代码,然后点击 .get 命令,然后继续运行,显然它会进入您接下来的"警报"。由于 .get 函数仍在您的页面进入"警报"部分之前获取数据......没有什么可提示的。
您可能希望在 .get 之后使用延迟对象将内容串在一起。查看: http://api.jquery.com/deferred.always/
这是一种在获取数据的功能中附加另一个函数的方法,因此它们相互依赖。
简单的答案,是的,您可以将数据存储在全局变量中并在其他地方访问它。但是,您必须等到它准备就绪。
更好的方法是将 jqXHR 全局存储,并在需要访问数据时向其添加一个 done 回调。
var reqDemoTest = $.get(...);
//... some time later...
reqDemoTest.done(function(data){
console.log(data);
});
相关文章:
- 为什么不允许值为0的变量询问是否存在
- AngularJS中存在与$scope变量相关的问题.UI中的值未更改
- 测试变量存在性的Javascript多重赋值:var obj=obj||{}
- 通过字符串形式的名称检查变量是否存在于本地作用域内
- 检查全局变量是否存在的正确方法是什么
- 验证JavaScript中是否存在变量
- javascript引擎:变量存在
- 如何将用户会话保存在PHP中的一个变量中,以便在JavaScript中引用
- 简写 if/else 变量存在
- 流星:如何避免检查到处是否存在变量或属性
- 等到元素存在,循环,然后存储在变量中
- 我的变量保存在 URL/位置中,如何从另一个页面读取它
- 处理 JavaScript 中不存在的变量
- q 从 .then 函数分配给更高级别的作用域变量是否存在任何陷阱
- 如果 Django 模板变量存在,则执行 Javascript
- 如果字符串变量存在,我如何从中删除包含[“”]
- 如果变量存在,则有条件地调用函数或脚本
- AngularJS $rootScope变量存在,但不可访问
- 如果变量存在...对象与变量,null与未定义
- Java脚本-给定字符串输入,查找是否有相同名称的变量,如果变量存在更改值