I have a summary map on my page that I would like to optimize. Right now I am loading every sweep card, even if it is not pressed.
Here is an example showing how the data is loaded when the state is clicked. I would like to achieve this.
But this is my code, and as you can see, I load all U-turn units, even if the card is not pressed. In my example, I only have 2 options for detailing, but in my real life problem I have it looks like 15, so it really slows things down.
So this is my code:
// get main map $.getJSON('json/generate_json_main_map.php', function(data) { // get region 1 map $.getJSON('json/generate_json_region_1.php', function(first_region) { // get region 2 map $.getJSON('json/generate_json_region_2.php', function(second_region) { // Initiate the chart $('#interactive').highcharts('Map', { title: { text: '' }, colorAxis: { min: 1, max: 10, minColor: '#8cbdee', maxColor: '#1162B3', type: 'logarithmic' }, series: [{ data: data, "type": 'map', name: st_ponudb, animation: { duration: 1000 }, states: { //highlight barva hover: { color: '#dd4814' } } }], drilldown: { drillUpButton: { relativeTo: 'plotBox', position: { x: 0, y: 0 }, theme: { fill: 'white', 'stroke-width': 0, stroke: 'white', r: 0, states: { hover: { fill: 'white' }, select: { stroke: 'white', fill: 'white' } } } }, series: [{ id: 'a', name: 'First', joinBy: ['hc-key', 'code'], type: 'map', data: first_region, point: { events: { click: function() { var key = this.key; location.href = key; } } } }, { id: 'b', name: 'Second', joinBy: ['hc-key', 'code'], type: 'map', data: second_region, point: { events: { click: function() { var key = this.key; location.href = key; } } } }] } }); }); }); });
JSON from generate_json_main_map.php:
[{"drilldown":"a","name":"region 1","value":"1","path":""},{"drilldown":"b","name":"region 2","value":"2","path":""}]
JSON from generate_json_region_1.php:
[{"name":"Place 1","key":"place.php?id=1","value":"1","path":""},{"name":"Place 2","key":"place.php?id=2","value":"2","path":""}]
This is my attempt to load ajax calls in parallel, but the map does not load, I only get coloraxis.
$(function() { $.when($.getJSON('json/generate_json_main_map.php'), $.getJSON('json/generate_json_region_1.php'), $.getJSON('json/generate_json_region_2.php')).done(function(data,first_region,second_region){ $('#interactive').highcharts('Map', { title: { text: '' }, colorAxis: { min: 1, max: 10, minColor: '#8cbdee', maxColor: '#1162B3', type: 'logarithmic' }, series: [{ data: data, "type": 'map', name: st_ponudb, animation: { duration: 1000 }, states: { hover: { color: '#dd4814' } } }], drilldown: { drillUpButton: { relativeTo: 'plotBox', position: { x: 0, y: 0 }, theme: { fill: 'white', 'stroke-width': 0, stroke: 'white', r: 0, states: { hover: { fill: 'white' }, select: { stroke: 'white', fill: 'white' } } } }, series: [{ id: 'a', name: 'First', joinBy: ['hc-key', 'code'], type: 'map', data: first_region, point: { events: { click: function() { var key = this.key; location.href = key; } } } }, { id: 'b', name: 'Second', joinBy: ['hc-key', 'code'], type: 'map', data: second_region, point: { events: { click: function() { var key = this.key; location.href = key; } } } }] } }); }); });
I see that jsons are loaded and there is no JS error shown by firebug.