《隐藏在背后的交互设计》中提到——加载过程的关键可以总结为:
1.让用户感知产品正在努力为他运作
2.让用户有基本的心理预期需要等待的时间长短
3.让用户在无聊的等待中获得更多乐趣
这三个关键点可以作为我们在设计加载机制时的一个原则。
一、全页面加载
全页面加载时,整个页面会一起下载,页面会出于全空白,或者只有一个加载动画在动的状态。这种加载比较简单,一般运用在页面内容比较单一的情况下,当页面元素较多时,这种载入的方式需要所有的内容都下载后才显示,相应的内容呈现的等待时间就会边长。因此,在多元素的页面中,就需要分步加载。
二、分步加载/异步加载
分步加载时全页面加载的优化形式,它的原理是页面在载入框架时,可以优先进行全页面的加载,而后页面的元素再分步加载,让用户先看到部分内容,其他内容在逐步加载。比如优酷,先把栏目加载出来,在加载各栏目的内容。
这种方案的特点是,能让用户逐步看到内容,在这个渐进的过程中可以降低用户的焦虑心理。同时要注意的是,在分步加载时,当只加载了部分内容时,未加载的内容会对页面的美观程度产生影响,同时也会影响用户对页面内容的理解。基本的解决方案是设计一些有品牌识别的默认图片来代替未加载出的图片,是界面在未加载图片内容时,也能有较好的展示效果。这方面的例子可以参看面包旅行。
三、懒加载
对于无尽内容的页面,出了要做分步加载让用户快速获得内容外,还需要对无尽内容进行合理的分段加载,这就是懒加载。
懒加载主要出现在长界面中(无尽列表),用户可以不断地向下查看内容,达到某个点之后自动加载内容,或是触发拉动后自动加载更多内容。
在进行懒加载时,需要注意的是一次要加载的内容数量,一般根据内容的大小和高度来决定,保证既能较快的载入内容,又能让用户更顺畅的查看不用一直等待。
四、智能加载
这种加载方式的特点是,在加载一个页面内容时,预测用户的下一步行为,并为他下一步使用的页面内容进行提前加载,使得用户在下一步操作中能立刻获取信息而无需等待。预加载提供给用户无缝的产品使用体验,使得用户在使用产品的过程中更直接流畅,没有被打断的感觉。但是这种方案需要面临很多的问题,最直接的是流量问题,因为会自动跑掉很多用户可能根本用不上的数据流量。有两个解决方式。
1、隐藏信息:设定加载规则,在网络好的情况下,可以提供更多更长的内容;在网络差的情况下,只把主要内容加载,而部分次要内容可以等用户操作时再显示。例如预加载新闻正文的情况,可以只加载文本信息,图片信息等到用户进入内页才加载。这种预加载与分块加载结合的方式也普遍运用在各个场景。
2、多套资源:主动判断网络情况,资源会根据网络情况做差异处理。如对于图片资源,可以根据具体情况提供质量不一的图片。
五、缓存加载/离线访问
主要针对无网络的情况下,让用户仍然能看到缓存的本地信息,不会出现空白界面。它解决了设计体验和观感上的很多问题。
1、一般在主要界面或是要重复使用的内容上使用缓存加载。
2、在当前的技术框架下,Native的应用本身是可以处理离线内容的。HTML5增加了离线存储的特性,只是当前还还是限制在5M以内。
3、离线存储有一缺点,就是使用手机空间存放离线内容,对于存储空间不大的手机是一笔不小的开销。所以使用缓存加载要有针对性,主要针对一些产生大量图片和视频的app,同时需要有缓存清理的入口和上限的控制机制。