- 主题:求教一个小问题,关于$.get()
初学jquery和javascript,碰到个问题
目的是通过javascript多次从外部获得json数据
现在的程序结构大概是
$.get("1.csv", function(data1){
processing data1;
此时所有data1数据都已获得。
$.get("2.csv", function(data2){
processing data2;
此时所有data1和data2数据都已获得。
$.get("3.csv", function(data3){
processing data3;
此时所有data1、data2和data3数据都已获得。
});
});
});
我的目的就是在获得了所有数据(如data1,data2,data3)后再做其他处理,主要是
画图。顺序编程的思路,但是碰到这种回调形式的就迷了。
只能上面这种程序结构吗?觉得嵌套的很不好看。。而且获得外部数据的次数多了,不
可控啊,有没有其他程序结构可以借鉴?
大家都是怎么处理的?
网上的例子只找到“只访问外部一次”。
--
FROM 218.28.2.*
var counter = 3,
countdown = function () {
counter -= 1;
if (counter === 0) {
// do your work;
}
};
$.get('1.csv', .., function (..) { ... countdown(); });
$.get('2.csv', .., function (..) { ... countdown(); });
$.get('3.csv', .., function (..) { ... countdown(); });
最简单的大致就这么个思路。
要搞彻底的话学一下 deferred 和 promise 的概念
https://github.com/kriskowal/q
【 在 brdf (BRDF) 的大作中提到: 】
: 初学jquery和javascript,碰到个问题
: 目的是通过javascript多次从外部获得json数据
: 现在的程序结构大概是
: ...................
--
修改:withinsea FROM 114.243.38.10
FROM 114.243.38.10
在JS的异步回调多级结构这方面,的确很受诟病,一些框架和开发环境在这方面做了很大努力,不过就浏览器的jQuery在这方面,好像一般不关注这方面问题,就你的这个程序,可以尝试并行发起异步请求+Flag信号标志变量试一下。
【 在 brdf 的大作中提到: 】
: 初学jquery和javascript,碰到个问题
: 目的是通过javascript多次从外部获得json数据
: 现在的程序结构大概是
: ...................
--
FROM 111.206.50.*
多谢,没想到哈
【 在 withinsea (在这个大喜的日子里,我们感到万分悲痛) 的大作中提到: 】
: var counter = 3,
: countdown = function () {
: counter -= 1;
: ...................
--
FROM 218.29.118.*
感谢,我搜搜学学
【 在 dhcn (小石) 的大作中提到: 】
: 在JS的异步回调多级结构这方面,的确很受诟病,一些框架和开发环境在这方面做了很大
努力,不过就浏览器的jQuery在这方面,好像一般不关注这方面问题,就你的这个程序,
可以尝试并行发起异步请求+Flag信号标志变量试一下。
--
FROM 218.29.118.*