【问题标题】:jQuery Cache param in Ajax - where does he saves the cached data?Ajax 中的 jQuery Cache 参数 - 他在哪里保存缓存的数据?
【发布时间】:2012-01-10 13:22:44
【问题描述】:

jQuery:

*cacheBoolean
Default: true, false for dataType 'script' and 'jsonp'
If set to false, it will force requested pages not to be cached by the browser. 
Setting cache to false also appends a query string parameter, "_=[TIMESTAMP]", to the URL.*

我的问题:

被浏览器缓存 ???

如果我有一个返回我的 ASHX 处理程序:

'<div>lalala</div>'

这会保存在浏览器的临时 Internet 文件中吗?

我不这么认为......

那么它保存在哪里呢?

【问题讨论】:

    标签: jquery ajax caching httphandler


    【解决方案1】:

    jQuery 本身不执行任何 AJAX 响应的缓存。设置cache: false 只是为了欺骗浏览器,通过向请求的 URL 添加时间戳来忽略自己的缓存。

    例如,运行:

    $.ajax('/ajax_handler.php', { cache: false });
    

    将导致请求/ajax_handler.php?_=1323308900002

    任何后续请求都将在末尾包含更新的时间戳,这将导致浏览器忽略文件的缓存版本并请求新副本。

    所以,cache: true 所做的所有设置都是指示 jQuery 附加这个缓存破坏时间戳(无论如何都是当前默认值),允许浏览器像往常一样缓存文件*。

    总而言之:发生的任何缓存都只是常规的浏览器缓存,文件将被存储,但浏览器通常会存储其缓存。

    * 请注意,“正常情况下”可能意味着缓存文件! jQuery 不做任何事情来确保缓存,这取决于浏览器。如果页面发送certain Cache-control or pragma headers,它就不会被缓存。可以说 jQuery 拥有一个与 cache 相反的“cacheBust”设置更有意义,因为这就是 jQuery 所能做的:尝试阻止缓存。

    【讨论】:

      【解决方案2】:

      我认为“由浏览器缓存”意味着如果浏览器(IE 比其他浏览器更多...)两次拦截相同的调用,则永远不会调用服务器,而只会返回服务器上次返回的任何内容。但是如果你清除缓存,它就会消失

      【讨论】:

      • 问题是:so where does it saves it ?
      • 我认为这取决于浏览器、SO 等。 Windows 7 下的 IE9 示例将它们保存在这里:C:\Users\youruser\AppData\Roaming\Microsoft\Internet Explorer\UserData
      猜你喜欢
      • 2022-11-11
      • 2011-01-28
      • 2015-04-28
      • 2010-12-20
      • 2012-07-07
      • 2021-05-04
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多