See analytics:reportChart in the VisualForce Developer's Guide. Specifically, I think you'll want to look at the cacheResults
attribute:
A Boolean indicating whether to use cached data when displaying the chart. When the attribute is set to true, data is cached for 24 hours, but you can modify the length of time with the cacheAge attribute. If the attribute is set to false, the report is run every time the page is refreshed.
Alternatively, you could reduce the cacheAge
(long) attribute setting such that the chart refreshes more frequently, say every 30 minutes, without having to rebuild itself every time the home page is loaded:
The length of time that an embedded chart can cache data, in milliseconds (for example, 24 hours = 86,400,000 ms). The maximum length of time is 24 hours.
There's also the showRefreshButton
attribute to consider which would allow a user the option to manually refresh a chart (but not the source data):
A Boolean indicating whether to add a refresh button to the chart.
There's additional information in the VisualForce Developer's Guide on different options available for Updating Charts with Refreshed Data.