Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Low data mode #7788

Open
quincylvania opened this issue Jul 15, 2020 · 6 comments
Open

Low data mode #7788

quincylvania opened this issue Jul 15, 2020 · 6 comments
Labels
performance Optimizing for speed and efficiency

Comments

@quincylvania
Copy link
Collaborator

iD can download a lot of data, which is an issue for mappers with slow or limited connections. This could become even more of a pain point as we continue to expand iD's mobile capabilities. We should consider adding the option to reduce the amount of downloaded data, at the cost of somewhat reduced functionality. Here are a few ideas:

  • Don't download map data or tiles outside the visible area
  • Prefer low-res tiles, even on high-res screens
  • Don't request external images
  • Don't preload anything before the mapper actually needs it

Of course, the underlying goal should be to keep regular data usage as lean as reasonably possible so most mappers won't need this setting.

@quincylvania quincylvania added the performance Optimizing for speed and efficiency label Jul 15, 2020
@jidanni
Copy link
Contributor

jidanni commented Jul 16, 2020

(Indeed... going a tiny bit further, zero data mode, would allow iD to be usable offline, like JOSM (whose opposite panning mouse binding means I cannot use it.) Anyway, imagery, if desired, could be cached beforehand, and edits would be saved up until an internet connection was available.)

@Nakaner
Copy link

Nakaner commented Jul 16, 2020

Couldn't we save data by just building a light version of iD not containing secondary features like name-suggestion-index, Mapillary and StreetSide? It would make it possible to load smaller JavaScript assets. Migrating the imagery index to a API returning only what one needs and not returning all entries for the whole world could save space as well.

@quincylvania
Copy link
Collaborator Author

Indeed... going a tiny bit further, zero data mode, would allow iD to be usable offline, like JOSM

@jidanni Offline mode would be a totally separate and much more difficult feature to build, particularly for a web app.

Couldn't we save data by just building a light version of iD not containing secondary features like name-suggestion-index, Mapillary and StreetSide?

@Nakaner I don't see these as secondary since they add significant functionality that mappers constantly use. If someone doesn't want something then they can always fork iD. Though I do agree that, as much as possible, we should avoid loading assets until the mapper initiates whatever feature.

@sun-geo
Copy link
Contributor

sun-geo commented Jul 21, 2020

It seems the new version v2.18.2 loads many more data to get access to the iD editor after pressing the "Edit" button on top of the osm.org page. I assume there is a rough estimation of app. 1MB for v2.17.x to app. 5MB now for v2.18.2. Do you have more exact figures by chance. Is it possible to reduce the data load while the iD starting procedure? Do you know the reason for the strong increase of the download data?

@quincylvania
Copy link
Collaborator Author

@sun-geo I haven't been paying much attention to initial download size, so I don't have great answers for you. Since we unbundled a lot of data in release (#4994), iD's JavaScript payload should be smaller but the data file minification may not be as optimized, but that's just a guess. Before even starting low data mode I'd definitely like to take a look into this.

@cicku
Copy link
Contributor

cicku commented Jan 26, 2023

Another issue is that even if I focus on a different nearby area and then switch back, iD will attempt to reload the imagery.

This significantly increases the bandwidth consumption of both the editor and the imagery server.

@tyrasd

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance Optimizing for speed and efficiency
Projects
None yet
Development

No branches or pull requests

5 participants