Refreshing main dataframe when page is reloaded

You can do both. If you want to save the data for some time before querying the again, you would need to do some kind of caching, either client side using Dash components (e.g Store) or server side. For the latter, you could try out a decorator I recently wrote,