user3631654
user3631654

Reputation: 1785

XMLHttpRequest: How to force caching?

I'm newer to XMLHttpRequests since I've previously used jQuery's AjAX method. However I need to work in a web worker and now I have to use the classic XMLHttpRequest for performance issues.

I'm trying to rebuild the cache-property from jquery. If cache should be disabled I add this:

xhr.setRequestHeader("Cache-Control", "no-cache");

But what header should I set if I want to force caching (not prevent)?

Upvotes: 11

Views: 23817

Answers (3)

itsazzad
itsazzad

Reputation: 7277

Please check Caching static assets

Cache-Control: public, max-age=604800, immutable

Upvotes: 0

Franklin Yu
Franklin Yu

Reputation: 9958

You can specify max-stale without an argument, in Cache-Control header of your request. From RFC 7234:

The max-stale request directive indicates that the client is willing to accept a response that has exceeded its freshness lifetime. If max-stale is assigned a value, then the client is willing to accept a response that has exceeded its freshness lifetime by no more than the specified number of seconds. If no value is assigned to max-stale, then the client is willing to accept a stale response of any age.

Upvotes: 7

Quentin
Quentin

Reputation: 944321

There are a variety of headers you can set to encourage caching, but they (including Cache-Control which you are using incorrectly) are response headers that must be sent by the server and not request headers.

One such example of using Cache-Control:

Cache-Control: max-age=3600

This Caching Tutorial for Web Authors and Webmasters covers them in more depth.

Upvotes: 5

Related Questions