分析APP上的緩存與刷新

這裏是IT修真院產品分享課,今天要分享的是前端

【分析APP上的加載 、緩存 、更新】緩存

1、什麼是緩存

緩存是介於應用程序和永久數據存儲源之間,目的是爲了下降應用程序直接讀寫永久數據存儲源的頻率,從而提升運行性能。服務器

2、爲何要加載緩存

場景一:【等待】在向服務器請求新的數據時。咱們讓用戶看到什麼?第一種是漂亮的等待加載頁面;第二種是緩存的內容。對於第二種,用戶能夠對頁面進行操做,等待新數據時能夠查看舊數據,更具備「可操做性」與「可用性」,從而減輕了從服務器獲取數據這一動做的大小和時間長短,加強了用戶體驗。另外一方面,若是內容更新的間隔較長或者用戶刷新的間隔較短,在沒有緩存的狀況下,不少數據咱們會屢次重複的向服務器獲取,增長了成本。網絡

場景二:【結果】沒有聯網,或者在地鐵上網絡太差沒法加載數據時,若是留給用戶一個空白頁面,實在是感受有點不負責任啊。而且不少功能在沒有聯網的狀況下也有使用的可能性,好比:APP中的通信錄,查看一些聊天記錄,通知信息,文章列表等。由於用戶打開APP不必定是要看新信息,說不定是回顧老信息(或許老信息裏也有用戶以前沒看的),因此恰當的緩存能夠知足更多的用戶場景。性能

場景三:【金錢】有一天,一個用戶發現本身裝了某個APP後流量用的特別快,Ta可能永遠將這個APP打入冷宮了,而增長緩存正是節省流量的一個方法。雖然節省的很少或者用戶也察覺不到,可是做爲一個有態度的產品經理,應該多作一些思考。插件

3、如何清理緩存?

通常App都會在「設置」裏提供一個清理緩存的功能,一鍵把空間釋放。除此以外,App最好要設計自動清理機制,能夠經過兩個維度來設計這個機制。翻譯

一、時間設計

經過設定一個固定的時間,或者根據用戶使用週期靈活設定時間來清理緩存。每一個產品的場景不一,用戶使用頻率不一,設定這個機制的時候就須要結合實際狀況考慮了。進程

二、容量get

通常是設定一個容量上限,採用堆棧的設計原理進行緩存清理,溢出堆棧的舊數據將自動清除。

4、什麼是加載

加載是一種反饋狀態,常見樣式有菊花、進度條等。用戶與產品的每一次互動都須要反饋,用戶依賴反饋信息,才能順利完成連貫的操做。用戶在等待反饋結果時,焦急專一的盯着界面,這時,系統須要告訴用戶「hi,我還活着,正在努力幹活呢,別走!」

5、何時用加載

1s是對話中能夠有的最長間隔,又由於交互系統的操做是一個對話的形式,因此交互系統應該避免本身一方的長時間間隔,不然用戶會懷疑發生了什麼。系統有1s的時間去執行用戶要求作的任務或者標誌出操做須要多少時間,要否則用戶會失去耐心」——摘自《認知與設計》

結合上面這句話,關於什麼時候使用,我這麼理解:若是系統1s內就能完成任務,能夠不給加載圖標,若是系統1s內不能完成任務,則須要在1s內彈出加載中的提示。

加載的邏輯:

客戶端接收到用戶操做後,向服務端發送請求,服務端響應而後返回數據,客戶端把數據翻譯成用戶看的懂的元素。用戶從執行操做後就一直在等待結果。客戶端從發送到接收到數據這段時間在等待結果。比較耗時的是發送接收數據以及渲染展現的環節。服務器查找時間取決於服務器性能和存儲等;發送耗時受網絡影響;渲染展現時間取決於前端和機器性能,知道這些,就能夠對症下藥了,誰家的孩子,誰拎回去修理,交互能作的就是配和他們的方案,選擇合適的方式,作好對用戶的宣傳。

6、什麼是刷新

簡而言之,下拉刷新是刷新指示器於下拉手勢想結合的產物,同時藉助下拉動效完善整個交互。

最先的下拉刷新設計源自於Tweetie 這款應用的設計,設計師Loren Brichter 是這種使人慾罷不能的交互的締造者。如今,下拉刷新的交互幾乎無處不在,但即使如此也讓人沒法輕易忽視它帶來的快感。從Twitter 到 Gmail,從QQ到新浪微博,它幾乎存在於你觸手可及的每個應用當中。

7、刷新是怎麼運行的

下拉刷新本質上是一種特定的手動刷新交互,和其餘的同類操做不一樣的地方在於它採用了更加直覺的下拉操做。它的交互足夠清晰明顯,不過有的時候設計師依然會使用刷新指示器來顯示自動更新的內容。不過,因爲自動刷新的機制不須要用戶進行任何操做,是所以自動刷新最好仍是不要使用刷新指示器了。

8、何時適合刷新

滑動刷新(包括下拉刷新)很是適合於列表、柵格列表和卡片集合之類界面(按照時間降序排列)。這類界面一般會隨着時間推移,優先展現最新的內容,而且一般不會採用自動更新來刷新內容。不採用自動刷新的機制的緣由很簡單,當你滾動到頂部的時候,若是採用自動刷新,內容會不斷自動下載顯示,對於用戶而言,這樣的自動顯示的機制並不可控。而下拉刷新則很好的解決了這個問題,只有在你使用下拉手勢的時候,觸發刷新指示器,再行更新,這樣也給了用戶選擇和退出的機會。

9、何時不適合刷新

下拉刷新並不是萬能的,它有不適宜使用的場景。

屏幕小插件:這類小插件是須要自動更新的

地圖應用:地圖上的內容一般不會以時序排列,也沒有明確的方向和內容來源,用戶也沒法直覺推斷出下拉刷新的含義。

無序列表:有序列表一般可以給用戶如下拉更新的指望,而無序列表在這方便則不明顯,也沒法直觀地讓用戶看出其中的更新。

低更新率的內容:若是列表中的內容並不常常更新,下拉刷新的手勢幾乎沒有存在的意義,由於用戶去刷新列表的機率很低,也沒有太大的必要。

按照時間前後順序排列的內容:按照時間前後順序排列的列表中,最新更新的內容排在最後,用戶下拉刷新以後沒法馬上看到最新更新的內容,這樣列表使用下拉刷新就至關尷尬了。

特殊類型的內容:許多須要實時更新的內容會在短短一分鐘甚至更短的時間內失去時效,諸如股票、服務器後臺進程之類的信息,最好使用實時自動更新。

【更多內容,歡迎加入交流羣565763832與你們一塊兒討論交流】

【這裏是技能樹·IT修真院:IT修真院官網,初學者轉行到互聯網的彙集地】

相關文章
相關標籤/搜索