Angular $http 缓存键是如何创建的
how does Angular $http cache key get created
Angular 文档中没有具体说明 $http 如何检查缓存中的现有密钥。
例如,当我这样做时:
$http.get("/search/11", { cache: true });
缓存显然会起作用。
但是如果我这样做会怎么样
$http.get("/search", { cache: true, params: { age: 11 } });
或者更复杂的
$http.post("/search", objectParams, { cache: true });
如果我更改 objectParams
的其中一个属性,它会绕过缓存吗?
更普遍的问题是,Angular 如何知道何时从缓存中提供服务与发出新请求?它是只比较 url、参数、后加载还是全部?
缓存键是http.js
(src)中buildUrl
函数构建的url:
url = buildUrl(config.url, config.params);
它创建一个 url 查询字符串部分: ?key1=val1&key2=val2
out of config.params
.
所以,
$http.get("/search", {cache: true, params: {key1: "val1"}})
// or
$http.post("/search", postData, {cache: true, params: {key1: "val1"}})
将有一个缓存键 "/search?key1=val1"
Angular 文档中没有具体说明 $http 如何检查缓存中的现有密钥。
例如,当我这样做时:
$http.get("/search/11", { cache: true });
缓存显然会起作用。
但是如果我这样做会怎么样
$http.get("/search", { cache: true, params: { age: 11 } });
或者更复杂的
$http.post("/search", objectParams, { cache: true });
如果我更改 objectParams
的其中一个属性,它会绕过缓存吗?
更普遍的问题是,Angular 如何知道何时从缓存中提供服务与发出新请求?它是只比较 url、参数、后加载还是全部?
缓存键是http.js
(src)中buildUrl
函数构建的url:
url = buildUrl(config.url, config.params);
它创建一个 url 查询字符串部分: ?key1=val1&key2=val2
out of config.params
.
所以,
$http.get("/search", {cache: true, params: {key1: "val1"}})
// or
$http.post("/search", postData, {cache: true, params: {key1: "val1"}})
将有一个缓存键 "/search?key1=val1"