Caching

The iPFaces client supports caching, primarily to accelerate the behavior on slow data connections. The client application uses cache for storing form definitions and images. There are two types of caches – in-memory and file system cache. The programmer can choose where to cache each particular resource. When the resource is cached to the file system, it persists there even when the application is restarted.

Caching is controlled by standard HTTP headers for caching (using “pragma cache”).

Caching rules

There are two possibilities for objects to be cached:

  1. The object is not cached at all, this happens in following cases:
    • pragma: no-cache
    • cache-control: no-cache
    • cache-control: no-store
    • cache-control: must-revalidate
    • the object expires in less than in an hour, that means it is set one of the following:
      • cache-control: max-age=xxx, where xxx < 3600 (seconds)
      • expires: xxx, where xxx < current date in GMT + hour(60 minutes)
  2. The object is cached for exactly one hour, this happens in following cases:
    • cache-control: max-age=xxx, where xxx >= 3600 (seconds)
    • expires: xxx, where xxx >= current date in GMT + hour(60 minutes)