原文:caching basics翻譯:dexter0218
android應用中乙個較好的的處理載入,會最小化網路請求的消耗。glide也是一樣,預設使用記憶體和磁碟快取來避免不必要的網路請求。我們將在後續的文章中詳細介紹這些細節。如果你等不及,可以去瀏覽一下關於這個主題的官方文件。
目前,重要的處理方式是所有的請求都會被快取在記憶體和磁碟上。大多數情況下,快取是乙個非常有用的東西,但在一些特殊的情況下並不是很明智。在下一節中,我們會介紹如何為單獨的請求調整glide的快取方式。
如果你在前面用glide用的很溜,你可能注意到你並不需要額外自己啟用快取。glide本身自帶快取。然而,如果你的變化的非常快,你需要避免一些快取。
glide提供了一些方法去避免記憶體快取和磁碟快取。我們先看看記憶體快取。
glide
.with( context )
.load( eatfoodyimages
[0] )
.skipmemorycache( true )
.into( imageviewinternet );
你已經注意到我們呼叫了.skipmemorycache( true )去特意告訴glide跳過記憶體快取。這意味著glide不會把這個快取到記憶體裡。重要是,這個只影響記憶體快取!glide為了避免以後的網路請求,仍然會快取到磁碟。
由於glide缺省會將所有的資源快取到記憶體中,因此,沒有必要手動呼叫.skipmemorycache( false )了。
你可以用.diskcachestrategy()方法改變glide的行為。不同於.skipmemorycache()方法,它將需要從列舉型變數中選擇乙個,而不是乙個簡單的boolean。如果你想要禁止請求的磁碟快取,使用列舉型變數diskcachestrategy.none作為引數。
glide
.with( context )
.load( eatfoodyimages
[0] )
.diskcachestrategy( diskcachestrategy
.none )
.into( imageviewinternet );
glide
.with( context )
.load( eatfoodyimages
[0] )
.diskcachestrategy( diskcachestrategy
.none )
.skipmemorycache( true )
.into( imageviewinternet );
我們之前提到的,glide有很多磁碟快取的策略。在我們展示這些選項前,你可能意識到glide的磁碟快取是相當複雜的。例如,picasso只快取全尺寸。glide,會快取原始,全尺寸的和額外的小版本。例如,如果你請求乙個1000x1000畫素的,你的imageview是500x500畫素,glide會儲存兩個版本的到快取裡。
現在,你應該明白.diskcachestrategy()中列舉引數的意義了:
glide
.with( context )
.load( eatfoodyimages
[2] )
.diskcachestrategy( diskcachestrategy
.source )
.into( imageviewfile );
由於glide快取一張的多個版本分辨,並不好輕易從快取中刪除乙個檔案,你需要去找到所有這個可能有關係的快取。這是乙個相當複雜的處理,官方wiki在無效快取上的指導非常棒。 Glide入門教程 22 系列綜述
原文 series roundup 翻譯 dexter0218 接下來,我們學習了如何在listviews或gridviews介面卡中使用glide。我們還展示了glide的佔位圖和漸變的動畫實現。在學習完如何載入和顯示影象,我們轉移到基本的影象處理。首先,我們已經介紹了您的可能使用glide提供的...
flask入門教程 18 快取
當你的應用變慢時,你可以考慮使用快取,flask本身沒有提供快取,但是依賴包werkzeug提供了。我們可以使用 cache來使用簡單的快取 from werkzeug.contrib.cache import cache cache cache cache.set name pynickle ca...
Glide入門教程 8 請求優先順序
原文 request priorities 翻譯 dexter0218 在看例子之前,我們先看一下作為.priority 方法引數的priority的列舉變數。一共有四個不同的列舉變數。下面以遞增方式列出 在跳到例子前,你應當明白優先順序並不是非常嚴格的。glide會將它們作為乙個指導來最優化處理請...