Glide入門教程 7 快取基礎

2021-07-22 17:24:44 字數 1838 閱讀 3700

原文: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會將它們作為乙個指導來最優化處理請...