Từ 9 giây xuống 1 giây tối ưu giỏ hàng sàn thương mại

Nội dung bài viết

Video học lập trình mỗi ngày

Sau khi bạn đã biết 1 phần hoạt động của một Ứng Dụng Thương Mại Điện Tử (TMĐT) phải xử lý như thế nào về quy trình giảm tải khi đặt hàng từ 9 giây xuống còn gần 1 giây, sau đó hạn chế gian lận khi cho phép mỗi người một phiếu giảm giá. Và ở bài trước, bạn cũng đã biết cách lấy và tìm những phiếu giảm giá theo vị trí gần nhất của người dùng. Sau đây là những bài viết liên quan đến bài viết này.

Những bài viết liên quan

Trong thời đại hiện nay, các APP thương mại đều chạy đua với UX (User Experience) hay gọi là trải nghiệm người dùng. Đó là một trong những yếu tố quan trọng giúp người dùng có thể sử dụng app của bạn lâu dài. Điển hình là giỏ hàng của các app, được lưu như thế nào? Lưu local hay lưu ở Server. Nếu lưu ở local thì khi nào hiện thị lên làm sao biết sản phẩm đó thay đổi mà update dữ liệu. Nếu như giỏ hàng nhiều sản phẩm thì sao? Mỗi khi login vào APP có xử lý nhanh hay không? Rất nhiều câu hỏi được đặt ra ở đây. Ở bài viết trước đây về cách tìm kiếm tiết kiệm lưu lượng mạng thì các bạn đã biết rõ là cả tiki hay lazada đều cho phép người dùng spam tìm kiếm, họ không sợ làm phiền máy chủ của họ, chấp nhận để giúp cho trải nghiệm người dùng tốt hơn. Ngoài ra còn có ý đồ gì đó đại loại lưu hết những gì chúng ta tìm kiếm...

Tiếp theo cho dù bạn không đăng ký nhưng app vẫn theo dõi hành vi của bạn, cụ thể bạn không cần đăng nhập để có những sản phẩm trong giỏ hàng. ĐÚng vậy, bạn vẫn có giỏ hàng khi không login, và sau một ngày bạn sẽ nhận được một thông báo với nội dung sau:

Shopee


Bạn sẽ thảo luận và đưa ra giải pháp không? Đọc tiếp xem bạn có đồng ý với tôi không trong vấn đề này? OK tiếp.

Giỏ hàng được tối ưu như thế nào?

Ở đây trước hết có những câu hỏi chúng ta nên giải quyết chúng từ từ, khi phát triển sản phẩm thì đầu tiên bạn làm là tính logic trước sau đó mới tới hướng tối ưu. Điều đó có nghĩa là bạn phải giải bài toán đúng ngay từ ban đầu, cho dù dài hay nhiều bước đi chăng nữa. Và khi có kết qủa đúng, bạn mới có sự động viện để làm ngắn lại phương pháp giải bài toán đó. Đó là cách của chúng tôi.

Điều thứ hai, bạn là người lập trình, bạn phải hiểu rằng những dữ liệu gì không cần thiết cho người dùng, và những dữ liệu nào cần thiết cho người dùng. Có nghĩa như thế này. Ví dụ như zalo đi, khi bạn login vào chắc chắn dữ liệu cần thiết đó là danh sách bạn bè, danh sách nhóm... Còn những DỮ LIỆU KHÔNG CẦN THIẾT, đó là profile bạn bè, chi tiết của nhóm...

Do vậy để đảm bảo người dùng trải nghiệm sau khi đăng nhập, dữ liệu cần thiết thường được kéo trong quá trình đăng nhập. Đến đây có những bạn sẽ hỏi rằng: Nếu như vậy thì khi đăng nhập hoá ra lại chậm à?.


Đương nhiên, chính vì vậy chúng ta cần phải tối ưu chúng. Sau đây là cách tôi thiết lập tương tự với giỏ hàng của app bên tôi.

Câu hỏi 1: Tôi có thể trực tiếp sử dụng lại dữ liệu giỏ hàng lưu ở máy khách (local) không?

Trả lời: Dữ liệu cục bộ của máy khách không thể được sử dụng lại trực tiếp, vì dữ liệu cục bộ không thể được đảm bảo là mới nhất. Ví dụ ngày 1 bạn lưu local đôi giày A = 100.000 đ, nhưng qua ngày 2 giá giảm or đã tăng lên. Nếu bạn vẫn cố tình lấy dữ liệu tại local thì xem như sai rồi.

Câu hỏi 2: Mỗi khi bạn đăng nhập, có nhiểu sản phẩm trong giỏ hàng, khiến tôi phải kéo đó, có phương pháp tối ưu hóa nào không?

Trả lời: Đương nhiên là có, 2 cách tối ưu mà phổ biến hiện nay mà tôi biết (Có thêm cách nào nữa thì các bạn bổ sung thêm hén) đó là:

  • Pull data (kéo trễ, hay kéo theo yêu cầu)
  • Timestamp (Lưu vết thời gian)

Tại sao Pull data lại có hiệu quả?

Trả lời: Bạn đọc lại ở trên tôi đã nói chút ít rồi, trong quá trình sử dụng APP, chắc chắn một số dữ liệu sẽ được sử dụng, còn một số dữ liệu không nhất thiết sẽ được sử dụng. Đối với dữ liệu chắc chắn sẽ được sử dụng, kéo nó khi đăng nhập có thể cải thiện trải nghiệm người dùng sau này. Đối với những dữ liệu không nhất thiết phải sử dụng, việc kéo khi đăng nhập có thể gây lãng phí lưu lượng.

Đừng hỏi tôi dữ liệu nào có thể không sử dụng sau khi đăng nhập và có thể lấy ra sau? Vì nó liên quan đến từng loại APP. CÒn chung chung thì tôi lấy zalo làm ví dụ.

2 cách tôi tối ưu như sau

Cách 1 Có ai quan tâm không, thử xem...

Có thể bạn đã bị missing