我是JSON的新手,我想创建一个等效的例子。 http://gabrielflor.it/a-half-decade-of-rising-poverty每当点击年份时,它只会转到JSON的不同部分(我假设)。通常这样做是为了避免重新绘制整个地图并调用另一个JSON.js文件?如果是这样,这些.JSON文件会变得非常大?
答案 0 :(得分:1)
使用JSON只是存储每年所需值的一种方法。当你切换到另一年时,JS解析给定年份的JSON并更新等值线。对于您提供的示例,以下是使用的JSON:
http://gabrielflor.it/static/data/saipe.json
这是一个很好的方法,因为您每年只需要一个JSON,并且只加载一次。 但是,由于d3需要这种方式的数据,我认为如果你想提供额外的数据,你应该添加另一个JSON ,就像在gabrielflor例子中一样:
http://gabrielflor.it/static/js/d3.poverty-by-county.js?v=121107
他用d3加载JSON:
d3.json('../static/data/states.json', function (json) {
states = json;
});
或
d3.json('../static/data/saipehighlights.json', function (json) {
saipehighlights = json;
});
答案 1 :(得分:0)
如果查看您提供的示例页面的网络流量(例如,使用Chrome开发者工具)。 贫困数据的文件非常大,但映射数据文件甚至更大。你会注意到,加载网站需要更长的时间,但是后来它在客户端运行非常顺利而不需要任何服务器调用。
该网站只是浏览信息和精心设计 - 为此目的,我认为如果用户体验更顺畅(即用户不必等待年份数据加载),则更长的加载时间是完全可以接受的。 / p>