你确信你造了一个牛逼的无限滚动?
英文原文:so-you-think-you-built-good-infinite.
1、用户点击“返回”按钮可以回到之前的相同位置吗?
再没有什么能比加载过几屏或者点击链接之后返回发现还需要重新加载之前的所有内容更让人大为火光的了。这不仅仅浪费时间而且浪费带宽。
2、在 JavaScript 不可用时有分页吗?
人们在页面加载中还没有 JavaScript 时便开始浏览网页,而且加载时间也会随着网络延迟而增大。另外,当第三方 js 不可用的时候,必然会导致你自己 js 不可用。用户在 JavaScript 不可用的时候仍然可以浏览页面吗?
3、页面有 Footer 吗?
有的话,你就成逗比了。用户永远不会到那里,因此不要欺骗用户,暗示他可以到底部 Footer。你可以直接删除它,至少显得真诚。
4、键盘用户可以到达页面的所有地方吗?
除非是不断更新的内容是(或者包含了)资源顺序(页面的线性化)的最后需要关注的元素,那么键盘用户(或者屏幕阅读器用户)将永远到达所有的内容,就像 Footer 一样,你不烦将其一块删除。
5、可以分享特定位置的页面吗?
当浏览过几屏内容之后,你你或许发现了几个有趣的链接。可以复制浏览器中的地址分享之后,接受者能够到达和你一样的状态吗(已经加载过极品和视口中的当前内容)?记住当页面未加载(或者锚是由 js 生成),锚链接是没用的。
6、用户可以快速跳过几个“页面”得到更后的页面吗?
设想一个新闻列表。再浏览过几屏之后你发现每屏就是一周(或者一个月或者任何的时间段)。你想到看到更早几周(或者更早点时间段)。在传统的页面中你可以通过导航达到目的。但是如果你的无限加载没有提供这样的功能,你就是在浪费用户的时间和带宽。
7、在加载过几个新的页面之后,内存占用是否会飙升?
打开你最爱的内存监控软件加载几屏,然后再加载几屏,或者加载全部。看下需要消耗多少内存然后和其他设备(譬如智能手机)的可用内存比较一下。记住移动浏览器通过丢弃工作内存中的内容来回收内存,可能会丢弃你缓存着的站点资源,这就会导致加载随后的内容需要更多的带宽和时间。
8、可不可以禁用无限滚动而通过分页导航?
用户可以很轻松的禁用无限滚动吗?忘记很跳跃的浏览器设置吧,至少要提供很明显的点击(single-click/tap)切换按钮来让用户禁用无限滚动,并可以让其继续浏览。
9、进行过任何用户测试吗?
在你发布之前,确保进行了真实用户的测试。不是来自你们公司,也不是 IT 专业认识,开发者,或者任何薪水取决你或者你老板喜好的人。
10、你解决的用例是来自用户研究或者用户的要求吗?
这个功能是来自用户或者客户吗?或者你的老板?或者只是你只是想练习你的脚本能力?如果你没有一个引人注目的用例或者功能请求来加上无尽滚动,你或许可以将你的精力用在真正有价值的事情上,譬如打印样式。
11、你有分析/跟踪功能来测试你无限滚动是否成功吗?
如果你决定发布你认为完美的自动无限滚动,不要忘记加一些跟踪脚本来记录你的用户加载了几屏,点击的频率。还有些其他的事情你可以跟踪到(譬如你页面的 footer 是否被点击到了)。毕竟,你的发布并不意味着成功,它是否工作良好才意味着成功。