NextReports Server allows from version 2.5 to define cache settings for all entities that can be added to dashboards : charts, table reports, alarm reports.
Reports are represented with different icons to know which ones can be cached. In next picture, besides simple reports, we can spot alarms and tables.
User can set an expiration time in minutes, if cache is used:
So only on the first load, a widget will do a database call. Any refresh inside dashboards done for all widgets created from a dashbordable entity, will take the result from cache until it will expire, then it will hit the database and again for next calls result will be taken from cache until cache will expire again.