在变量发生变化时帮助获取数据

时间:2010-12-27 03:17:52

标签: javascript json mootools

我正在尝试为Api编写JavaScript接口,但我无法弄清楚这个问题。我有代码来调用ajax请求:

    mooshark.request('userInfoFromID', {
        userID : '20991'
    });

该代码创建了一个Ajax请求。当它启动时,它将内部变量设置为true(表示它正在运行)。然后在下一行我有这个:

    var data = mooshark.response();
    alert(data);

响应函数如下:

    response: function () {
        if(this.running == false){
            return "done";
        } else if (this.running == true){
            alert("Running");
            setTimeout(this.response, 3000);
        }
    }

输出(按此顺序)运行。未定义。 (JSON响应)。运行。它不会输出“完成”。当这个运行变为真时,有没有办法返回“完成”?我想提一下,这个。运行并不总是相同的请求时间。我知道总是可以选择在ajax请求中将所有代码包装在onCompleat函数中,但我希望将其作为最后的手段。

谢谢!

2 个答案:

答案 0 :(得分:0)

如果不冻结浏览器,这是不可能的。

每当您的代码运行时,浏览器UI都将被完全冻结 如果您希望呼叫等待服务器回复,则需要完全冻结浏览器。 (这不是一个好主意)

答案 1 :(得分:0)

由于大部分时间都是通过setTimeout()调用response(),因此返回值并不实用。

但是 - 您可能永远不会将'running'变量设置为false。您可以在此处发布更多代码(例如,AJAX响应处理代码)。另外:你究竟想通过返回/提醒“跑步”和“完成”来完成什么?