DWR对javascript变量的响应
DWR response to javascript variable
我几周前就要求过这个,但没有人帮我。
这对我来说是一件非常重要的事情,但它仍然没有任何有效的解决方案。
在ViewDwr中,我有一个简单的方法,通过给定的Id检查一些数据,并将状态返回为布尔值。在javascript(jsp文件)中,我有这样的东西:
ViewDwr.checkData(id, function(data)
{
document.getElementById("status").innerHTML=data;
});
而且效果很好。问题是我需要将数据放入变量中。类似于:
var currentDataStatus;
ViewDwr.checkData(id, function(data)
{
currentDataStatus=data;
});
alert(currentDataStatus);
但在这种情况下,它不起作用。我尝试了它的任何组合,但我找不到任何可行的解决方案来将resposne值放入变量并在其他函数中使用它。
有人能帮我吗?
感谢
这是不起作用的,因为它是异步处理。稍后,当服务器返回结果时,将调用您的function
。在这一点上,你的背景早已不复存在。
当异步编程时(如wih DWR),您必须从特定的处理顺序中抽象出来。在回电话中思考(好吧,我不会从这里开始谈论承诺等)。比如,"当结果出来时,应该发生什么"。
在您的第二个样本中,这将类似于:
ViewDwr.checkData(id, function(data)
{
alert(data);
});
为什么你需要一个变量?如果这是一个全局变量,这无论如何都不是一个好主意。否则,请考虑将其作为某个对象中的属性。
var myObject = {};
ViewDwr.checkData(id, function(data)
{
myObject.currentDataStatus = data;
alert(myObject.currentDataStatus);
});
或者更好的是,让你的对象更智能:
var myObject = ...;
ViewDwr.checkData(id, function(data)
{
myObject.onDataChecked(data);
});
重要的是,您必须在success
回调中处理结果(如alert(currentDataStatus)
)。
相关文章:
- 如何将getJson的响应保存在全局变量中
- 存储$http如何从$http函数(Angularjs)外部获取可访问变量中的响应
- 正在Javascript响应中设置会话变量
- jquery返回ajax响应和用户定义的变量到函数
- 通过 AJAX 调用 PHP 文件,将 $_GET 变量传递到 MySQL 查询中,然后回显到响应中
- 为什么可以't I存储在全局变量中的Javascript ajax响应
- 如何在ExpressJS和LomotiveJS上保存对变量的GET响应
- 如何检索jquery ajax对php变量的响应
- 每次通过按钮调用 Ajax 时,如何在 JSONP URL 中重用 JSONP 响应变量
- 如何让角度控制器响应变量的值更改事件
- 如何读取AJAX响应变量
- 响应变量来捕获用户输入(Meteor)
- 在客户机和服务器之间共享响应变量
- 为什么当响应变量改变值时,这个函数不运行?
- 从Meteor中的另一个模板获取响应变量
- 按钮onclick不响应变量
- FB.ui发送变量在回调中的响应变量中返回
- 如何在第一个 getjson 函数中的另一个 getjson 调用中使用 getjson 响应变量
- 来自 php 的 jQuery Ajax 响应变量
- jQuery Ajax将响应变量传递给函数