웹페이지에서 흔히 모든 구성요소 중에는 페이지네이션, 인피니티 스크롤 개념이 있다.
페이지 네이션은 등록된 게시물이 많아 질수록 무조건 page 단위의 넘기는 기능이 필요하기 때문에 Pagination이 필수적으로 있어야한다.
pagination을 사용하면 각각의 ID 값에 따라서 다르게 서버에 데이터를 요청하고,게시물의 목록을 가져 올 수있다.
인피니티 스크롤은 지속적으로 스크롤을 할 때 마다 데이터를 불러오는 특징을 가졌다.
흔히 페이스북 같은 걸 할때 일정 스크롤을 내릴때 마다 데이터를 새롭게 가져오는 것을 확인 할 수있다. 하지만 스크롤은 일종의 브라우저에서도 이벤트로 감지 하기 때문에 이벤트 관련된 이슈가 있다. 이러한 문제를 해결하기 위해서 쓰로틀링 과 리바운싱이 존재한다.
[Throttling]
스로틀링은 사전적인 의미로는 목을 조르다,조절하다 라는 뜻을 가지고 있다.
컴퓨터 관점에서 생각을 해보면 요청, 혹은 이벤트가 의도한 바 보다 너무 많이 발생 할 때, 일정 delay를 주고 delay 하는 동안에는 이벤트 자체를 막음으로써 이벤트를 막은 그 시점에서 발생한 이벤트,요청,함수 등은 전부 무시가 된다.
[Debouncing]
디바운싱은 계속 호출되는 함수들 중에서 제일 마지막에 실행된 함수만 호출 되게 하는 것이다.
이말은 즉슨 가장 최근으로 실행된 이벤트를 실행되게 하는 것이다.
이미 정해둔 delay 시간보다 짧은 시간 내에 이벤트가 실행되면 실행 되지 않고 delay 시간이 지나면 실행이 되는 것이다.
즉 스크롤을 할때 짧은 시간에 많은 이벤트들이 발생하는데 일정 delay 시간안에 스크롤 이벤트가 다시 발생하면 이벤트가 실행되지 않고, 정해둔 delay 시간이 자나면 실행이 되는것이다.