How to prevent Ajax/javascript result caching in browsers?

前端 未结 5 1773
遥遥无期
遥遥无期 2020-11-28 13:13

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.

Tes

相关标签:
5条回答
  • 2020-11-28 13:29

    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"

    0 讨论(0)
  • 2020-11-28 13:29

    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)
    
    0 讨论(0)
  • 2020-11-28 13:32

    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
    0 讨论(0)
  • 2020-11-28 13:44

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

    0 讨论(0)
  • 2020-11-28 13:48

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

    The complete code example is like this:

    $.ajaxSetup({cache: false});
    
    0 讨论(0)
提交回复
热议问题