Bài toán đơn giản tại sao bạn phải đi tìm API?

Nội dung bài viết

Đang ngồi làm việc thì một bạn qua hỏi, Anh ơi có API nào mà kiểm tra được người dùng có tương tác trên web của mình trong thời gian mình đặt không Anh?

Và đây cũng chính là một trong những yếu tố "Làm sao phân biệt được một lập trình viên có tố chất."


Tình huống cụ thể


Giống như youtube khoảng tầm 20 phút nếu chúng ta không thao tác trên giao diện đó thì sẽ hiện ra một thông báo tạm dừng. Lý do có lẽ tôi đoán là tiét kiệm ngân sách 4G cho anh em thôi. 


Vậy khi có một bài toán như vậy mà các bạn lại đi tìm API thì thật là quá đáng lắm luôn :D. Đến đây sẽ có bạn hỏi dễ mà có thể sử dụng những sự kiện như mousemove để lắng nghe những hành động của User. 


Cũng đúng nhưng thử hỏi nếu người dùng đang sử dụng trên một ipad hay bất cứ một thiết bị nào có cảm ứng thì không có sự kiện đó thì làm thế nào? Ngừng ngay việc tìm API, hãy làm theo cách này, nó đơn giản và hiệu quả. 


Cách giải bài toán phát hiện người dùng đang còn hoạt động trên ứng dụng


Nguyên tắc cũng rất đơn giản, đó là đặt một biến và set thời gian vào biến đó cụ thể là:

let minute = 10

Sau đó, sử dụng nguyên tắc "settimer javascript"  để tính toán mỗi phút trôi qua thì -1;

setInterval(() => {
  minute--
  if (minute <= 0) {
    // Dừng video phát song ở đây
  }
 }, 1000 * 60)
 

Sử dụng sự kiện click của người dùng để set lại time nếu người đó còn tương tác. Hay khi một sự kiện xảy ra, điều đó có nghĩa là người dùng đang hoạt động và biến cần được khôi phục:


window.addEventListener('click', () => minute = 10)


Chỉ một vài dòng mã đã giải quyết được nhu cầu cấp thiết của bạn. Tất nhiên, có nhiều cách tốt hơn, nhưng đối với tôi vậy là đủ. 


Các bạn cũng vậy, đơn gianr thôi.

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