Javascript中的顺序与同步文件加载

Javascript中的顺序与同步文件加载,javascript,d3.js,Javascript,D3.js,我正在开发一个数据可视化,我需要从我的文件系统加载多个JSON文件,然后从Web服务获取另一个JSON文件。我目前正在使用顺序方法(json文件正在加载d3.js): 我的问题是,如果我同时获取所有文件,是否可以获得更好的加载时间?这是最好的方法吗 编辑:我知道如何同时加载。我想知道的是,它是否会加快初始加载速度,这是否是一种好的做法。您可以按顺序调用所有json函数,并让每个回调触发init函数。然后,init函数必须计算已经进行了多少次调用,并且只有当计数达到正确的值时,才进行实际的初始化

我正在开发一个数据可视化,我需要从我的文件系统加载多个JSON文件,然后从Web服务获取另一个JSON文件。我目前正在使用顺序方法(json文件正在加载d3.js):

我的问题是,如果我同时获取所有文件,是否可以获得更好的加载时间?这是最好的方法吗


编辑:我知道如何同时加载。我想知道的是,它是否会加快初始加载速度,这是否是一种好的做法。

您可以按顺序调用所有json函数,并让每个回调触发init函数。然后,init函数必须计算已经进行了多少次调用,并且只有当计数达到正确的值时,才进行实际的初始化

d3.json('Cata_provincias.geojson', function(contents){
    provincias_json = contents
    init()
})
d3.json('Cata_girona.geojson', function(contents_girona){
    girona_json = contents_girona
    init()
})
d3.json('Cata_barcelona.geojson', function(contents_barcelona){
    barcelona_json = contents_barcelona
    init()
})
d3.json('Cata_tarragona.geojson', function(contents_tarragona){
    tarragona_json = contents_tarragona
    init()
})
d3.json('Cata_lleida.geojson', function(contents_lleida){
    lleida_json = contents_lleida
    init()
})

var count = 0
function init() {
    if(++count < 5)
        return

    // Do actual initialization here 
}
d3.json('Cata_provincias.geojson',函数(内容){
provincias_json=目录
init()
})
d3.json('Cata_girona.geojson',函数(contents_girona){
girona\u json=contents\u girona
init()
})
d3.json('Cata_barcelona.geojson',函数(contents_barcelona){
巴塞罗那\u json=contents\u巴塞罗那
init()
})
d3.json('Cata_tarragona.geojson',函数(contents_tarragona){
tarragona_json=contents_tarragona
init()
})
d3.json('Cata_lleida.geojson',函数(contents_lleida){
lleida_json=内容
init()
})
变量计数=0
函数init(){
如果(++计数<5)
返回
//在这里进行实际初始化
}

我知道如何同时加载。我想知道的是,它是否会加快加载速度,这是否是一种良好的做法。我的回答显示了一种更好的方法(你问你的方法是否是最好的,对吗?),它会加快加载速度,因为你会并行处理多个并发请求。我对它进行了测试,同时的方法确实会加快加载速度。这并不是我问的答案,它的评论包含了其他用户可能需要的所有信息。我接受它。要加载许多文件,请使用。
d3.json('Cata_provincias.geojson', function(contents){
    provincias_json = contents
    init()
})
d3.json('Cata_girona.geojson', function(contents_girona){
    girona_json = contents_girona
    init()
})
d3.json('Cata_barcelona.geojson', function(contents_barcelona){
    barcelona_json = contents_barcelona
    init()
})
d3.json('Cata_tarragona.geojson', function(contents_tarragona){
    tarragona_json = contents_tarragona
    init()
})
d3.json('Cata_lleida.geojson', function(contents_lleida){
    lleida_json = contents_lleida
    init()
})

var count = 0
function init() {
    if(++count < 5)
        return

    // Do actual initialization here 
}