CodeReady
Quay lại danh sách case study

Tối ưu hiệu năng tìm kiếm danh sách sản phẩm

Giải quyết tình trạng giật lag giao diện khi người dùng gõ tìm kiếm liên tục trên ô input.

Bối cảnh

Em tham gia xây dựng trang thương mại điện tử với ô tìm kiếm sản phẩm gọi API trực tiếp mỗi khi người dùng gõ phím.

Vấn đề cần xử lý

Mỗi lần người dùng gõ một chữ cái, hệ thống lại gọi API một lần gây quá tải server và đơ giao diện ở phía client.

Hướng xử lý đề xuất

Áp dụng kỹ thuật Debounce cho ô input tìm kiếm để giới hạn thời gian gọi API chỉ khi người dùng dừng gõ khoảng 300ms.

Câu trả lời mẫu khi phỏng vấn

Khi gặp bài toán này, em nhận thấy việc gọi API liên tục theo từng phím gõ là không tối ưu. Em đã áp dụng hàm debounce tự viết hoặc dùng từ lodash để trì hoãn việc gọi API, đồng thời kiểm tra nếu từ khóa quá ngắn thì không gọi để giảm tải cho server.

Trade-off

Đánh đổi một chút độ trễ phản hồi (300ms) để đổi lấy hiệu năng mượt mà và giảm đáng kể số lượng request lên server.

Kết quả kỳ vọng

Giảm được 80% số lượng request thừa lên server và giao diện không còn hiện tượng giật lag khi gõ nhanh.

Bài học khi trả lời phỏng vấn

Học được tầm quan trọng của việc quản lý tần suất sự kiện người dùng và kỹ thuật tối ưu Frontend cơ bản.