gpt4 book ai didi

jquery - jqGrid数据存储在浏览器缓存中?

转载 作者:行者123 更新时间:2023-12-01 07:34:03 25 4
gpt4 key购买 nike

jqGrid是否将网格数据存储在文件系统上?如果是这样,是否需要清除浏览器缓存才能将其删除?

或者它只是由 JavaScript(和浏览器)存储在内存中?关闭浏览器会删除数据吗?

这些问题的答案是否会根据您是否使用 loadOnce 而变化?

最佳答案

默认情况下,从服务器加载的数据(JSON 或 XML 数据)将保存在浏览器缓存中,但在下次请求时不会使用。原因是默认情况下 jqGrid 实现与 ajax 请求相同的行为,如 jQuery.ajaxcache:false 参数。 。这意味着所有请求都有一个附加参数 nd ,例如 nd=1286296925096 ,即时间戳。它使所有 GET 请求的 URL 都是唯一的,因此本地保存的数据不会被重复使用。因此,如果您希望 jqGrid 不使用本地浏览器缓存中的数据,则无需执行任何操作

如果您想另外拒绝在本地保存数据(例如,出于安全原因或为了减少用永远不会使用的信息填充本地缓存),您可以包括 no-store服务器响应的 HTTP header 中的指令。

如果您确实想缓存服务器请求并使用数据,您应该 prmNames: { nd:null} jqGrid option 。然后可以从本地浏览器缓存中获取下一个请求的数据。如果您这样做,我建议您在服务器响应的 HTTP header 中包含 Cache-Control强制使用您需要的缓存行为的指令。例如,我个人使用 Cache-Control: max-age=0 并将 ETag 与发送数据的哈希值一起使用。因此,所有 ajax 请求都会发送到服务器以重新验证本地缓存。所有请求将自动包含 If-None-Match HTTP header 以及本地缓存数据的 ETag。如果数据未更改,服务器可以使用没有正文的响应 HTTP/1.1 304 Not Modified 进行应答,而不是使用正文包含数据的 HTTP/1.1 200 OK。响应 HTTP/1.1 304 Not Modified 允许浏览器使用本地缓存。

更新:我另外使用Cache-Control: private,它关闭代理上的数据缓存并声明数据可以被缓存,但不能与其他人共享用户。

如果您想了解有关 HTTP header 的缓存控制的更多信息,我建议您阅读以下内容 Caching Tutorial .

关于jquery - jqGrid数据存储在浏览器缓存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3885658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com