Fetch API 提供了一个 JavaScript 接口,用于访问和操纵 HTTP 管道的一些具体部分,例如请求和响应。它还提供了一个全局 fetch() 方法,该方法提供了一种简单,合理的方式来跨网络异步获取资源。
Request.cache
cache 作为Request 接口只读属性包含着请求的缓存模式。它控制着请求以何种方式与浏览器的 HTTP 缓存进行交互。
Value
可选值:
- default — 浏览器从HTTP缓存中寻找匹配的请求。
- 如果缓存匹配上并且有效( fresh), 它将直接从缓存中返回资源。
- 如果缓存匹配上但已经过期 ,浏览器将会使用传统( conditional request )的请求方式去访问远程服务器 。如果服务器端显示资源没有改动,它将从缓存中返回资源。否则,如果服务器显示资源变动,那么重新从服务器下载资源更新缓存。
- 如果缓存没有匹配,浏览器将会以普通方式请求,并且更新已经下载的资源缓存。
- no-store — 浏览器直接从远程服务器获取资源,不查看缓存,并且不会使用下载的资源更新缓存。
- reload — 浏览器直接从远程服务器获取资源,不查看缓存,然后使用下载的资源更新缓存。
- no-cache — 浏览器在其HTTP缓存中寻找匹配的请求。
- 如果有匹配,无论是新的还是陈旧的,浏览器都会向远程服务器发出条件请求。如果服务器指示资源没有更改,则将从缓存中返回该资源。否则,将从服务器下载资源并更新缓存。
- 如果没有匹配,浏览器将发出正常请求,并使用下载的资源更新缓存。
- force-cache — 浏览器在其HTTP缓存中寻找匹配的请求。
- 如果有匹配项,不管是新匹配项还是旧匹配项,都将从缓存中返回。
- 如果没有匹配,浏览器将发出正常请求,并使用下载的资源更新缓存。
- only-if-cached — 浏览器在其HTTP缓存中寻找匹配的请求。
- 如果有匹配项(新的或旧的),则从缓存中返回。
- 如果没有匹配,浏览器将返回一个错误。
示例
fetch("some.json", {cache: "no-store"})
.then(function(response) { });
fetch("some.json", {cache: "reload"})
.then(function(response) { });
|