Sup*_*ios 4 javascript ajax jquery
我试图val在下面的代码中为变量赋值:
var cmdValue = "/cmd/fetch?x=";
var val;
var returned_data;
function what(){
val = update('#TAG#');
}
function update(tag) {
var req1 = newXMLHttpRequest();
req1.open("GET",cmdValue + tag, true);
req1.send("");
return req1.onreadystatechange= function () {
if (req1.readyState == 4 && req1.status == 200) {
returned_data = req1.responseText;
return returned_data;
}else{
}
};
}
Run Code Online (Sandbox Code Playgroud)
我正在跟踪Firebug中的变量,事实证明它val被分配了函数.有没有办法让代码运行,然后将值赋给变量val?
在异步编程中,您不需要 return数据,因为您不知道该数据何时可用 - 它是异步的.
进行异步编程的方法是使用事件和/或回调.
例:
var cmdValue = "/cmd/fetch?x=";
var val;
var returned_data;
var performSomeAction = function(returned_data) {
val = returned_data;
}
function what(){
update('#TAG#',performSomeAction);
}
function update(tag,callback) {
var req1 = newXMLHttpRequest();
req1.open("GET",cmdValue + tag, true);
req1.send("");
req1.onreadystatechange= function () {
if (req1.readyState == 4 && req1.status == 200) {
returned_data = req1.responseText;
//fire your callback function
callback.apply(this,[returned_data]);
}else{
}
};
}
Run Code Online (Sandbox Code Playgroud)
这个问题是关于SO的最常见问题之一,至少在涉及到javascript标签时 - 请在问自己之前搜索类似的问题.
| 归档时间: |
|
| 查看次数: |
15265 次 |
| 最近记录: |