You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It seems that currently the debouncing of requests is solved on a per-fetcher basis, meaning that every fetcher needs to implement the same logic again. We did not understand this at the beginning since the fetcher method is called fetchTilesDebounced which suggests that it would not be triggered on each zoom event. Maybe it would be useful to move this code to a base class.
The text was updated successfully, but these errors were encountered:
This is a good point that would help improve adherence to the DRY principal.
Currently datafetchers with workers implementTabularDataFetcher. Instead, these datafetchers could extend a base TabularDataFetcher class which has has a default fetchTilesDebounced function as you suggested.
A little background which might be interesting:fetchTilesDebounced is the the primary way data is passed to GoslingTrack from datafetchers that don't use a worker, but not in datafetchers that use a worker, which instead use getTabularData. So actually, the logic in fetchTilesDebounced could also be removed for classes which implement TabularDataFetcher. However, higlass still expects there to be a function called fetchTilesDebounced so we still include it.
In the long term, we want for Gosling to be able to support custom datafetchers. To do this, we first need to reduce the API surface that is exposed to datafetchers through HiGlass. We are in the process of gradually adding types to HiGlass, which will make it easier to break apart into sub packages which in turn will make it easier to specify what parts of HiGlass the datafetchers have access to.
It seems that currently the debouncing of requests is solved on a per-fetcher basis, meaning that every fetcher needs to implement the same logic again. We did not understand this at the beginning since the fetcher method is called fetchTilesDebounced which suggests that it would not be triggered on each zoom event. Maybe it would be useful to move this code to a base class.
The text was updated successfully, but these errors were encountered: