在前端開發中,app開發往往是不可忽視的重要環節,像是我們通常會借助apicloud平臺來開發app。在APP的開發中圖片的加載作為用戶體驗一個重要標準,往往也是客戶衡量app體驗好壞的一個指標,今天小編就來分享一下自己的開發心得。

相信每個開發者都希望自己app的圖片如上圖一樣能夠快速的打開圖片,而不是每次都需要向服務器不斷地請求數據不停地轉圈。在apiclound中,有很多是關于數據存儲的,其中具有關于圖片的imagecache.
這次我們還是先次官方是如何說的
圖片緩存
imageCache({params}, callback(ret, err))
params
url:
類型:字符串
默認值:無
描述:圖片遠程地址
encode:
類型:布爾
默認值:true
描述:(可選項)是否對url進行編碼。默認或傳true時,Android將始終對url編碼,而iOS只有在url不合法(如存在中文字符)的時候才進行編碼。如果url中有特殊字符需要編碼的,建議先在js層進行編碼,然后此參數傳false。
policy:
類型:字符串
默認值:default
描述:(可選項)緩存策略
取值范圍:
default //默認為 cache_else_networkcache_else_network //若服務器上沒有更新,則使用緩存no_cache //不使用緩存,始終從服務器獲取cache_only //當緩存存在時,只從緩存中讀取
thumbnail:
類型:布爾類型
默認值:true
描述:(可選項)使用縮略圖,底層將根據當前系統及設備性能,返回最優的縮略圖,有利于提高應用運行及渲染效率
tag:
類型:字符串
默認值:無
描述:(可選項)標識信息,將在回調中返回
callback(ret, err)
ret:
類型:JSON 對象
內部字段:
{
status:true, //是否成功,布爾類型
url:'' //圖片本地存儲路徑,若下載失敗,則返回傳入的url,字符串類型
tag:'' //標識信息,字符串類型}
以上是官方的說法,小編的理解是imagecache是一個可以把http或者https或者widget地址直接轉為手機上的地址的一個工具,它所存儲的位置:
Android的默認沙箱位置:sdcard/UZMap/appId iOS的默認沙箱位置:Documents/uzfs/appId;
當然我們也可以通過config文件來修改默認存儲位置
像是上圖的案例,代碼如下 
本案例中,先是通過ajax通過get的方法獲取圖片,如果存在圖片的話(響應值為200),則調用圖片imagecache,先把服務器的圖片路徑轉為手機存儲的路徑并同時緩存圖片,但是這里存在問題,因為這里一共三張圖片,如果其中有一個圖片沒有調到,這樣就會有空的很尷尬,所以設置了兩個函數 初始值都是1,這種的有關分為兩種 一個是圖片沒有與服務器建立通信,另一個是沒有該圖片資源,如果三個圖片都沒有的話,就會執行刷新頁面。
app案例地址:

或者在appstore里直接搜索“易挖”
或者appstore里搜索易挖
好了,以上就是小編今天所分享的文章,如果想關注更多小編的文章就來文匯軟件關注小編吧!



