缓存结果意味着什么?

时间:2013-09-28 17:09:36

标签: ajax

我是网络开发的新手,我正在从w3Schools学习AJAX。在学习GET请求时,它表示以下内容可能会为您提供缓存结果:

xmlhttp.open("GET","demo_get.asp",true);
xmlhttp.send();

要避免这种情况,请在网址中添加唯一ID:

xmlhttp.open("GET","demo_get.asp?t=" + Math.random(),true);
xmlhttp.send();

缓存结果意味着什么?我浏览了整个示例,但无法理解,我何时应该使用第二种方法中给出的唯一ID?

2 个答案:

答案 0 :(得分:4)

浏览器可以通过 Uniqe URL 缓存Http响应,因此下次您访问某个站点时,浏览器不会发送http请求,但会显示该URL的最后一个响应缓存存储。

当您使用随机因素创建网址时(在这种情况下,存在具有随机值的查询字符串变量名t ),这会阻止浏览器缓存响应。

第一个案例的浏览器缓存网址:

demo_get.asp

demo_get.asp 来自缓存

第二个案例的浏览器缓存网址:

demo_get.asp R = 42350972

demo_get.asp?r = 11850753 没有缓存

答案 1 :(得分:3)

在发出HTTP GET请求之后,浏览器可以选择保留它收到的响应,并且下次需要发出相同的请求时,而不是发出请求,获取之前收到的响应并将其呈现。这称为caching

由于URL通常是浏览器识别要检索哪个缓存页面的键,因此打破此问题的一种方法是始终使用不同的URL请求相同的资源。这样,浏览器将存储对每个URL的响应,但不太可能再次检索存储的页面,因为新URL与上次用于存储响应的URL不同。

控制缓存的另一种方法是使用HTTP协议内置的caching capabilities