Currently when the page loads all checkins and their associated data are loaded as a geojson. The advantage of this strategy is that additional requests are not needed when zooming/filtering/etc. However, it is slow and results in a very large initial page size.
Instead, the side bar and map data should be decoupled. The map should initially load all checkins as a geojson, but only their checkin_ids. The side bar should then query for the most recent checkins. When the user zooms, a separate query should fire to update the checkins displayed in the sidebar.
Currently when the page loads all checkins and their associated data are loaded as a geojson. The advantage of this strategy is that additional requests are not needed when zooming/filtering/etc. However, it is slow and results in a very large initial page size.
Instead, the side bar and map data should be decoupled. The map should initially load all checkins as a geojson, but only their checkin_ids. The side bar should then query for the most recent checkins. When the user zooms, a separate query should fire to update the checkins displayed in the sidebar.