从$ .getJSON()方法获取数据

Key*_*upt 3 javascript jquery getjson

我正在编写一个Web应用程序,需要初始化一些我通过$ .getJSON()方法提取的参数.

$.getJSON("../config/", function(data)
{
     console.debug(data);
}
Run Code Online (Sandbox Code Playgroud)

现在,因为这些值将在整个脚本中全局使用,并且不会直接触发事件(这是我可以在文档中找到的$ .getJSON()的唯一实现),如何返回或检索此回调数据?

Ken*_*ric 17

你最好的选择是坚持使用回调技术.

有两种真正的方法可以使它工作,两者基本相同.

$.getJSON("../config/", function(data) {
        SomeObject.config = data; 
        SomeObject.load();   # assuming load tells some-object that it now has data and to get cracking
});
Run Code Online (Sandbox Code Playgroud)

要么

$.getJSON("../config/", function(data) {
        SomeObject.load( data );   # SomeObject sets itself up and starts doing its thing
});
Run Code Online (Sandbox Code Playgroud)

尝试以同步的方式使用$ .getJSON(即:让它返回一个值)只会让你使用你网站的人感到痛苦和痛苦,因为同步连接有阻止整个UI的倾向.:)

就目前而言,做同样的事情是异步的

var i = null;                              #1
$.getJSON("../config/", function(data) {   #2
        i = data;                          #3
});                                        #4
some_function_with(i);                     #5
Run Code Online (Sandbox Code Playgroud)

不行,因为第5行几乎可以保证在第3行之前执行.