Thanh tiến trình (Progress bar) – Liệu nó có phải một cú lừa!
September 30, 2020 0 By Nam VuBao nhiêu người chán nản tại bàn trong bao nhiêu giờ mỗi ngày và bao nhiêu ngày mỗi tuần, và bao tuần mỗi năm trong bao nhiêu năm trong đời?
Thanh tiến độ là một công cụ chỉ báo trên máy tính về thứ gì đó đang diễn ra bên trong. Theo wikimedia, Thanh tiến trình là một thành tố điều khiển dùng để biểu diễn sự tiến triển của một thao tác tính toán kéo dài như tải xuống, truyền tệp tin hoặc cài đặt. Đôi khi bổ sung cho phần đồ hoạ còn có dạng chữ của tiến độ theo phần trăm.
Loại cổ điển được dùng suốt nhiều năm là thanh ngang. Ý mình là, thanh này có từ những phiên bản tiền máy tính trên sổ cái, mọi người sẽ điền vào một thanh ngang từ trái sang phải để biểu thị bao nhiêu phần công việc đã hoàn thành tại nhà máy. Đây là một thứ tương tự trên màn hình.
Điều đã diễn ra những năm 70 thường được nhắc tới như “cuộc khủng hoảng phần mềm” khi mà đột nhiên, các máy tính trở nên phức tạp hơn nhanh hơn những gì mà người thiết kế ra nó dự đoán. Mọi người đã sử dụng chỉ báo phần trăm hoàn thành theo những cách khác nhau.
Có thể là hình ảnh đồng hồ đếm ngược hay một dãy hoa thị chạy từ trái sang phải trên màn hình. Nhưng chưa ai tiến hành khảo sát có hệ thống về những thứ này và cố gắng để hiểu: Cách chúng thực sự ảnh hưởng tới trải nghiệm của người dùng khi ngồi trước máy tính?
Một sinh viên tốt nghiệp tên là Brad Myer, đã quyết định nghiên cứu điều này vào năm 1985. Anh phát hiện ra rằng việc chỉ báo phần trăm hoàn thành có chỉ ra con số chính xác hay không.
Không quan trọng!!
Điều quan trọng là nó ở đó. Nhìn thấy nó ở đó khiến mọi người thấy thoải mái hơn, và đó là điều đáng ngạc nhiên nhất. Anh ta nghĩ về những việc thứ này có thể làm. Nó có thể làm người ta thư giãn hiệu quả.
Cũng có thể cho phép người ta rời mắt khỏi máy tính và làm điều gì khác trong quãng thời gian đó.Họ sẽ nhìn và nói: “Ồ, tiến độ đến được một nửa rồi. Cần năm phút nữa. Và giờ mình có năm phút để gửi cái fax này đi”, hoặc bất kỳ thứ gì người ta làm vào năm 1985.
Cả hai điều trên đều sai.
Kiểu như, khi bạn nhìn vào thanh tiến độ, nó thu hút sự chú ý của bạn và biến trải nghiệm chờ đợi thành một câu chuyện thú vị mở ra ngay trước mắt: bằng cách nào đó, thời gian bạn dành để chờ đợi trong ức chế để máy tính làm một việc gì đó, đã được biến hóa thành: “Tiến độ! Ồ! Những thứ tuyệt vời đang diễn ra!”
Nhưng một khi bắt đầu nghĩ về thanh tiến độ như một thứ gì đó hơn là xoa dịu nỗi đau chờ đợi, thì bạn có thể bắt đầu lấn sân sang tâm lý học. Nếu có một thanh tiến độ chạy với tốc độ không đổi – dù đó là điều thực sự đang diễn ra bên trong máy tính, nó khiến người ta cảm thấy nó đang chạy chậm dần. Chúng ta thấy chán. Vâng, giờ bạn có thể cải thiện bằng cách làm cho nó dường như chạy nhanh hơn thực tế, làm nó chạy nhanh hơn ban đầu, như một cú tăng tốc.
Thật thú vị, người ta nghĩ: “Ồ! Nó đang thực sự hoạt động!” Rồi bạn có thể quay trở lại tốc độ tự nhiên hơn của thanh tiến độ Bạn cho rằng người ta tập trung vào sự qua đi của thời gian – cố chờ xem cỏ mọc, cố chờ xem một bình nước, đến lúc nó sôi và bạn cố gắng làm điều đó trở nên bớt chán, bớt vất vả và ức chế hơn trước đây.Thanh tiến độ ít nhất cũng cho bạn một cái nhìn về sự bắt đầu và kết thúc và việc bạn đang tiến đến một mục tiêu. Mình nghĩ bằng nhiều cách, nó xoa dịu nỗi sợ hãi cái chết.
Đừng tiến bộ ngược!Khá nhiều thanh tiến trình có chuyển động điền về phía trước mặc dù công cụ đang được gỡ bỏ. Lấy ví dụ hộp thoại xóa tệp trong Windows:
Thanh tiến trình ở đây có thể đã bị đảo ngược, nhưng điều đó sẽ truyền một thông điệp hoàn toàn khác đến người dùng: “Đĩa nhận được trống”. Nhưng trong một chuyển động điền về phía trước, nó sẽ truyền thông điệp chính xác: “Tiến trình xóa các tệp”.
Một ví dụ dễ dàng hơn là làm rỗng một xô nước. Bạn có thể hiển thị tiến trình theo hai cách:
- Bao nhiêu nước chúng ta đã thoát ra khỏi xô? (từ 0 đến 100)
- Bao nhiêu nước còn lại trong xô? (từ 100 đến 0)
Từ góc độ tâm lý, chuyển động về phía trước từ 0 đến 100 là tốt hơn.
Nếu bạn xem các thanh tiến trình trên các trang web gây quỹ cộng đồng khác nhau (ví dụ như Kickstarter), chúng dường như luôn lấp đầy từ 0 đến một số nào đó (và từ trái sang phải) nhưng có thể dễ dàng được hoàn nguyên:
500$ of 2500$ funded
[===== ]
Tuy nhiên, những trang web này có thể đã sử dụng một loại khác:
2000$ of 2500$ needed
[=================== ]
Loại thứ nhất điền từ trái sang phải, mô hình thứ hai trống từ phải sang trái. Thanh tiến trình đầu tiên được sử dụng cho một lý do, nó cho thấy sự tiến bộ trong một chuyển động về phía trước. Sự tiến bộ lạc hậu là phản trực giác.
Khi nào bạn có thể có tiến bộ ngược?
Hầu như không bao giờ, trừ khi bạn vì một số lý do mất tiến độ. Một ví dụ điển hình của thanh đi lùi là thanh sức khỏe trong trò chơi (như đã đề cập trong các bình luận). Một thanh sức khỏe luôn cạn kiệt khi bạn mất mạng.
Tuy nhiên, lưu ý rằng một thanh sức khỏe là vì một lý do chính đáng không được gọi là “thanh tiến trình”. Một thanh sức khỏe không cần thiết phải truyền đạt “tiến trình” cho người dùng, thay vào đó, nó truyền đạt một “trạng thái” nhất định cho người dùng. Nếu thanh giảm, nó được coi là một cái gì đó tiêu cực (đặc biệt là nếu thanh không thể tăng trở lại).
Kết cho bài viết này mình xin phép lấy sự đánh giá về mức độ khó chịu khi sử dụng Progress bar và Spinner (mình chẳng biết dịch là gì, gọi nó là cái quay quay chờ đợi không biết trước thời gian chờ nhé)
Trong ngành của mình thì dưới đây là phân biệt trường hợp dùng, nhưng mình vẫn xin ý kiến cảm nhận từ các bạn về mức độ khó chịu ra sao?
P/s: Bài viết được cảm hứng từ ted talk