浏览器缓存是否知道javascript xmlhttp请求?

浏览器缓存是否知道javascript xmlhttp请求?,javascript,google-chrome,firefox,browser,browser-cache,Javascript,Google Chrome,Firefox,Browser,Browser Cache,当我在javascript中使用GET请求获取页面时,浏览器缓存页面的方式是否与我单击该链接或在地址栏中键入页面的方式相同 如果没有,因为我已经获取了页面,有没有办法(以编程方式)将其添加到浏览器缓存中?当浏览器获取网页时,它也在使用GET请求。所有GET请求都可能在浏览器中通过相同的缓存机制,尽管没有规范正式说明其工作方式 除了请求资源并让浏览器的缓存处理它的正常事务之外,没有任何编程方法可以向浏览器自己的缓存添加内容。如果您想知道是否所有常用浏览器都将以这种方式缓存它,那么您需要确保服务器端

当我在javascript中使用GET请求获取页面时,浏览器缓存页面的方式是否与我单击该链接或在地址栏中键入页面的方式相同


如果没有,因为我已经获取了页面,有没有办法(以编程方式)将其添加到浏览器缓存中?

当浏览器获取网页时,它也在使用GET请求。所有GET请求都可能在浏览器中通过相同的缓存机制,尽管没有规范正式说明其工作方式

除了请求资源并让浏览器的缓存处理它的正常事务之外,没有任何编程方法可以向浏览器自己的缓存添加内容。如果您想知道是否所有常用浏览器都将以这种方式缓存它,那么您需要确保服务器端头设置设置正确(以允许缓存),然后测试每个浏览器以确保它按照您的需要进行缓存

如果您待在同一个页面中,并且希望确保不会从同一页面多次请求某些内容,那么可以在该页面的javascript代码中实现自己的缓存。您只需在第一次请求时将结果存储在javascript变量中,然后您实现的获取此资源的函数只需检查您自己的本地存储对象,查看资源是否已经存在。如果没有,则通过GET请求,然后保存结果。您可以制作一个简单的版本,将其硬编码到一个特定的资源,或者制作一个更通用的版本,保存URL、结果和时间戳,并实现更典型的缓存行为


如果您希望跨页面缓存数据,并且测试发现内置浏览器缓存不足,则可以使用本地存储存储数据(可能带有时间戳),然后在使用GET请求请求之前检查本地存储。

可能存在重复的数据。这基本上回答了你的问题。强制缓存的唯一方法是发送适当的头(一些限制/浏览器差异,例如由于SSL apply afaik)。@nietonfir-我不认为关于防止缓存的问题/答案是试图强制缓存的重复。它们是不同的问题,需要不同的答案。@jfriend00我(显然)不同意。OP询问浏览器是否缓存XmlHttp请求,这由dup回答。但在仔细阅读了一遍之后,我必须承认国旗对我来说有点匆忙。回答得好。