This section provides performance concepts used in the SAP NetWeaver user interface services.
An OData service call can request resources that are so large it can take many seconds or even minutes to return them to the consumer. Moreover, scrolling to the next page causes the data to be read from the database again before loading that page. Users do not want to wait a long time for the system to respond. In such a case it makes sense to use a caching mechanism to store requested resources. We differentiate between two cache types:
The server-side cache stores resources requested by the client on the server. In the context of SAP Fiori launchpad, this is the front-end server. The resources remain in the cache until an event in the system occurs, upon which they are invalidated. Typical events are:
Change to a Web Dynpro configuration: This affects SAP Fiori launchpad artifacts such as groups, tiles, and catalogs.
Change to a PFCG role
Change in the navigation repository (transaction LPD_CUST)
Change to a BSP page
The client-side cache, typically residing in a browser, stores the requested resources.
If certain conditions are met, subsequent requests read the resources from the cache. This improves the performance considerably as roundtrips to the front-end server are avoided. An example of such a condition is if the maximum retention period in the cache has not been reached (HTTP response header cache-control: <max-age>).
We use the technique of URL expiry (cache busting). The server typically assigns the resource an expiry date in the far future to avoid conditional HTTP requests, which require a roundtrip to the server.