Edit this page

up.network up.network.config
JavaScript property

Sets default options for this package.

Value

[config.concurrency] numberorFunction(): number optional

The maximum number of concurrently loading requests.

Additional requests are queued. Preload requests are always queued behind non-preload requests.

You might find it useful to set a concurrency of 1 in end-to-end tests to prevent race conditions.

By default Unpoly allows 6 concurrent requests. Under low bandwidth the default is lowered to 3. Your browser may impose additional concurrency limits regardless of what you configure here.

[config.wrapMethod] boolean optional

Whether to wrap non-standard HTTP methods in a POST request.

If this is set, methods other than GET and POST will be converted to a POST request and carry their original method as a _method parameter. This is to prevent unexpected redirect behavior.

If you disable method wrapping, make sure that your server always redirects with with a 303 status code (rather than 302).

[config.cacheSize=70] number optional

The maximum number of responses to cache.

If the size is exceeded, the oldest responses will be dropped from the cache.

[config.cacheEvictAge=90*60*1000] number optional

The number of milliseconds until a cached response is discarded.

Defaults to 90 minutes.

[config.badRTT=0.6] number optional experimental

The connection's maximum effective round-trip time required to prevent Unpoly from reducing requests.

The value is given in milliseconds. Lower is better.

Note that round-trip time only describes the time for a signal to be sent and acknowledged ("ping time"). It does not include the time it takes for your server to calculate and render a response. For this configure up.network.config.badResponseTime.

Round-trip time detection is currently only supported in Chromium-based browsers.

[config.badResponseTime=400] numberorFunction(up.Request): number optional experimental

How long to wait before emitting the up:network:late event.

Requests exceeding this response time will also cause a progress bar to appear at the top edge of the screen.

This metric is not considered for the decision to reduce requests.

The value is given in milliseconds.

[config.timeout=90_000] numberorundefined optional

A default timeout for requests in milliseconds.

Set undefined to not use a timeout.

[config.fail] booleanorFunction(up.Response): boolean optional

Whether Unpoly will consider a response to constitute a failed response.

By default Unpoly will consider any status code other than HTTP 2xx or 304 to represent a failed response. You may use this option to customize this behavior. For instance, you can fail a response if it contains a given header or body text.

The following configuration will fail all responses with an X-Unauthorized header:

let badStatus = up.network.config.fail
up.network.config.fail = (response) => badStatus(response) || response.header('X-Unauthorized')

Also see Customizing failure detection.

[config.cacheExpireAge=15_000] number optional

The number of milliseconds after which a cache entry is considered expired and will trigger revalidation when used.

The configured age should at least cover the average time between preloading and following a link.

Defaults to 15 seconds.

[config.cacheEvictAge=15_000] number optional

The number of milliseconds after which a cache entry is evicted.

In practice you will often prefer expiration over eviction.

Defaults to 90 minutes.

[config.autoCache] Function(up.Request): boolean optional

Whether to cache the given request with { cache: 'auto' }.

By default Unpoly will auto-cache requests with safe HTTP methods.

You may change this default to prevent auto-caching of some of your routes. For example, this will prevent auto-caching of requests to URLs ending with /edit:

let defaultAutoCache = up.network.config.autoCache
up.network.config.autoCache = function(request) {
  defaultAutoCache(request) && !request.url.endsWith('/edit')
}
[config.expireCache] Function(up.Request, up.Responseorup.Offline): booleanorstring optional

Whether to expire the cache after the given request and response.

By default Unpoly will expire the entire cache after a request with an unsafe HTTP method.

The configured function can either return a boolean or an URL pattern matching responses that should be expired.

[config.evictCache=false] Function(up.Request, up.Responseorup.Offline): booleanorstring optional

Whether to evict the cache after the given request and response.

The configured function can either return a boolean or an URL pattern matching responses that should be evicted.

By default Unpoly will not evict any cache entries when a request is made.

For example, to evict the entire cache after a request with an unsafe HTTP method:

up.network.config.evictCache = (request) => !request.isSafe()
[config.progressBar] booleanorFunction(): boolean optional

Whether to show a progress bar for late requests.

This website uses cookies to improve usability and analyze traffic.
I accept or learn more