你確信你造了一個牛逼的無限滾動?
英文原文: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 是否被點擊到了)。畢竟,你的發布并不意味著成功,它是否工作良好才意味著成功。