1. 程式人生 > >關於快取機制的一些體會

關於快取機制的一些體會

最近的一個android專案已經升級了第二個大版本,以前出現的一些問題都有效的得到了解決。今天早晨在使用者使用時,又發現了一個新的問題。

在產品經過了初始化的載入之後便進入到了歡迎介面,歡迎介面中展示了使用者的一些資訊以及今日的天氣。由於在進入歡迎介面後,程式才會啟動一個新的執行緒去獲取天氣預報資訊,但是此時初始化過程中下載各種資料的執行緒都已經啟動,由於此時頻寬壓力較大,獲取天氣預報需要1分鐘左右。所以這樣就導致了整個介面天氣預報部分一分鐘左右沒有資訊。

雖然在經過一段時間的載入之後就能夠有效展示出資訊,但是這樣也是使用者不可接受的。假設如果我是使用者,看到這樣的情況也會產生各種不信任

在經過了仔細思考後,想到了在本地建立天氣預報快取內容的辦法。快取中始終存放的是目前最新的天氣預報資訊,如果下載執行緒能夠獲取到最新的資料,重新繪製天氣介面即可。這樣的好處就是即使下載失敗,或者網路不通的情況下也能夠展示出天氣資訊,從而能夠不受限於網路的狀況。

有了思路後,實現的過程還是比較簡單的:

1、activity在oncreate中,啟動天氣資訊的下載執行緒,下載成功後,將資訊序列化,寫入到SharedPreferences中,重新繪製天氣資訊

2、acvitity在oncreate中,預設繪製從SharedPreferences中取出的天氣資訊

3、如果執行緒獲取資訊失敗,可以按照重試次數重新啟動下載執行緒

這樣做的好處就是將天氣資訊的獲取與天氣資訊的顯示解耦了,降低了耦合性。有的時候,策略也是非常重要的。

相關推薦

關於快取機制一些體會

最近的一個android專案已經升級了第二個大版本,以前出現的一些問題都有效的得到了解決。今天早晨在使用者使用時,又發現了一個新的問題。 在產品經過了初始化的載入之後便進入到了歡迎介面,歡迎介面中展示了使用者的一些資訊以及今日的天氣。由於在進入歡迎介面後,程式才會啟動一個新

阿裏移動技術峰會的一些體會 2015-07-04

優化 輸出 的確 pac 演進 book 研究 限流 流程 這個周六有幸參加了在廣州舉行的阿裏移動技術峰會。非常不easy能在廣州參加一次技術分享會,以往都要跑到京杭深等地方,非常麻煩。希望以後能在廣州舉辦越來越多的技術會議,提高下廣州的技術圈分享氛圍。 簡要地補幾

學習的一些體會

期末考 如果 不同 知識 軟件 最全 星期 心理 工程 學習不應該一開始就想著怎麽去精簡,而應該是廣泛涉獵和博取。先把知識面擴大,有利於自己建立大局觀。不要一開始就把自己限制在一個很狹窄的範圍內 關於讀書的方法:在《系統工程》的第一章第三講裏有很好的講解。 學習一樣新東西,

瀏覽器自動化的一些體會7 selenium webdriver的一些問題

.get 下載 down flow span 完全退出 question ces byname 1. 下載圖片 這個鏈接說得最好,差不多所有可能的方法都列舉了,除了沒有提到用URLDownloadToFile,不過這和用WebClient差不多。 https://stac

[C#]SQL Server Express LocalDb(SqlLocalDb)的一些體會

con director cal zh-cn security href sof [] each 真覺得自己的知識面還是比較窄,在此之前,居然還不知道SqlLocalDb。 SqlLocalDb是啥?其實就是簡化SQL Server的本地數據庫,可以這樣子說,SQL Se

Web快取機制綜述(HTML5快取總結與細節釋疑)

開篇: 最近專案裡用到了HTML5快取機制,於是很想搞清楚 瀏覽器快取,HTML5離線快取,還有專案中用到的 CDN快取 這三部分的關係以及更新機制。看了一堆關於HTML5快取機制的文章,各有所長,各有疏漏。因此本人想在此做一總結,本文假設讀者對基本的HTML5快取應用已有所瞭解,因此不再詳述概

Android快取機制詳解之硬碟快取DiskLruCache

簡介 防止多圖OOM的核心解決思路就是使用LruCache技術。但LruCache只是管理了記憶體中圖片的儲存與釋放,如果圖片從記憶體中被移除的話,那麼又需要從網路上重新載入一次圖片,這顯然非常耗時。對此,Google又提供了一套硬碟快取的解決方案:DiskLruCache(非Google官方編

關於Android MvvM的一些體會

關於Android MvvM的一些體會 前言 由於我司專案較老有很多歷史包袱程式碼結構也比較混亂,需求複雜的頁面動輒activity中1000多行,看著很是頭疼,於是趁著加班提前做完需求餘下的時間學習了mvvm對專案部分功能進行了改造,目前已經使用3個版本了,本篇博文分享

LRU (最近最少使用) 快取機制:時間複雜度O(1)

/** * Double Linked List * 用了一個特別的雙向的ListNode,有了head和tail,這樣就大大加快了速度。 * 主要加快的就是那個‘更新排位’的過程,找到item hashmap O(1), 做減法換位也都是O(1) * Overall O(1)

Hibernate之快取機制!!!!!!

快取:   是計算機領域的概念,它介於應用程式和永久性資料儲存源之間。 快取:   一般人的理解是在記憶體中的一塊空間,可以將二級快取配置到硬碟。用白話來說,就是一個儲存資料的容器。我們關注的是,哪些資料需要被放入二級快取。 快取作用:   降低應用程式直接讀寫資料庫的頻率,從而提高程式的執行效能。

angular的快取機制

快取資料,不僅能使資料得到儲存,而且使專案能進行客觀的效能優化。 $http的快取 $http({ method: 'GET', url: 'api/user.json', cache: true }) 快取能夠服務的請求越多,整體系統效能就能提升越多

RecycleBin快取機制

在學習Android開發的過程中,大家應該或多或少的會接觸到ListView這個控制元件。那麼,大家有沒有思考過,一個螢幕只能顯示一定的item,每次下滑後,消失的item去哪裡了?當再次回到原來的位置的時候,加載出來的item是重新獲取的還是從快取空間裡提取的呢?接下來,我們通過分析Rec

瀏覽器自動化的一些體會8 HttpWebRequest的幾個問題

前面說過了,httpWebRequest的好處在於輕量,不需要介面,缺點在於無法執行javascript。這裡再歸納一些問題。 1. 設定代理 1) httpWebRequest不支援https的代理,也就是說用不了某些vpn,你懂的。 2) 一般的寫法: HttpWebRequest request

詳解leetcode146題【LRU (最近最少使用) 快取機制】(附js最優解法!)

leetcode 146. LRU (最近最少使用) 快取機制 題目描述 運用你所掌握的資料結構,設計和實現一個 LRU (最近最少使用) 快取機制。它應該支援以下操作: 獲取資料 get 和 寫入資料 put 。 獲取資料 get(key) - 如果金鑰 (key) 存在於快取中,則獲取金鑰的值(總

LeetCode 146. LRU快取機制(java實現)

參考解答 總結:這道題主要要知道選取何種資料結構並且在 O(1) 時間複雜度內完成這兩種操作? O(1) 的get方法肯定要用到HashMap() LinkedList(雙向連結串列)可以以O(1)時間複雜度,很方便地實現資料的插入和刪除 所以,將兩個資料結構聯合使用,Ha

分享知識-快樂自己:Mybatis快取機制

論快取機制: 1):mybatis 提供了快取機制減輕資料庫壓力,提高資料庫效能。 2):mybatis 的快取分為兩級:一級快取、二級快取 3):一級快取是SqlSession級別的快取,快取的資料只在SqlSession內有效。 4):二級快取是mapper級別的快取,同一個

Mybait快取機制(四)

MyBatis同大多數ORM框架一樣,提供了一級快取和二級快取的支援。 一級快取:其作用域為session範圍內,當session執行flush或close方法後,一級快取會被清空。 二級快取:二級快取和一級快取機制相同,但是可以自定義其作用範圍,如Ehcache。 一級快取 在預設情況下mybati

Android圖片載入框架最全解析(三),深入探究Glide的快取機制(筆記)

原文地址:Android圖片載入框架最全解析(三),深入探究Glide的快取機制 筆記: 1.Glide快取簡介 2.快取Key EngineKey 重寫了equals()和hashCode()方法,保證只有傳入EngineKey的所有引數都相同的情況下才認為是

小程式學習--如何利用storage快取機制(小程式快取功能)

小程式中一個切換期刊的業務,每次切換的時候,都需要向伺服器傳送請求,顯得很麻煩, 所以才去storage的機制,在編譯過程中就載入好資料存放到快取中,這樣每次切換期刊的時候,不用再次傳送請求,完成優化 開啟開發工具的偵錯程式,選擇network,每次切換的時候,只請求新期刊的點贊狀態,

JAVA中Integer的快取機制

Integer的快取機制: Integer是對小資料(-128~127)是有快取的,再jvm初始化的時候,資料-128~127之間的數字便被快取到了本地記憶體中,如果初始化-128~127之間的數字,會直接從記憶體中取出,不需要新建一個物件. public static v