在前端开发中,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里搜索易挖
好了,以上就是小编今天所分享的文章,如果想关注更多小编的文章就来文汇软件关注小编吧!