2015-04-25 20 views
2

它在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,params,postload或全部嗎?

回答

3

緩存關鍵是buildUrl功能http.jssrc)內置的網址:

url = buildUrl(config.url, config.params); 

與查詢字符串的一部分創建一個URL:?key1=val1&key2=val2config.params

所以,

$http.get("/search", {cache: true, params: {key1: "val1"}}) 
// or 
$http.post("/search", postData, {cache: true, params: {key1: "val1"}}) 

將有"/search?key1=val1"

一個緩存鍵