Babiker
Babiker

Reputation: 18798

How to prevent Ajax/javascript result caching in browsers?

How to prevent browsers from caching Ajax results? I have and event triggered Ajax script the displays results only when the browsers data has been cleared.

Tested in IE6 and Firefox 3.0.10

Upvotes: 9

Views: 16890

Answers (5)

Mitch Labrador
Mitch Labrador

Reputation: 294

I've used the jQuery {cache: false} method and it worked like a charm.

The complete code example is like this:

$.ajaxSetup({cache: false});

Upvotes: 9

glaz666
glaz666

Reputation: 8731

using jQuery you can set global ajax setting: { cache: false }. See it in jquery ajax docs

Upvotes: 4

Matthew Flaschen
Matthew Flaschen

Reputation: 284836

The random URL works, but it's kind of a hack. HTTP has solutions built in that should work. Try using the solution indicated here. Basically, set the headers:

"Pragma":            "no-cache",
"Cache-Control":     "no-store, no-cache, must-revalidate, post-check=0, pre-check=0",
"Expires":           0,
"Last-Modified":     new Date(0), // January 1, 1970
"If-Modified-Since": new Date(0)

Upvotes: 15

John Topley
John Topley

Reputation: 115362

There are two techniques for this that I'm aware of.

  • Add some sort of query string to the AJAX request URL so that it's always unique. A millisecond timestamp (perhaps combined with a random value) is good for this
  • Set HTTP cache control headers on the AJAX response so that the browser doesn't cache it

Upvotes: 4

Itay Maman
Itay Maman

Reputation: 30723

Add a random query string to the URL you are sending.

E.g. if the Ajax request is sent to "http://www.xyz.com/a" then add a random string at the end: "http://www.xyz.com/a?q=39058459ieutm39"

Upvotes: 11

Related Questions