前端的限流主要是通过以下几种方式实现的:
-
节流:在一定时间内,只允许某个事件执行一次,例如在用户连续点击某个按钮时,只有在一定时间间隔内让第一次点击事件执行,之后忽略其他点击事件。
-
防抖:在一定时间内,只允许某个事件的最后一次执行,例如在用户输入搜索关键词时,只有在用户停止输入之后才会发起一次请求。
-
限制请求次数:在一定时间内,限制某个请求接口的调用次数,例如在某个页面中,只允许用户频繁刷新页面或发送请求的次数有限。
-
限制请求速率:在一定时间内,限制某个请求接口的调用速率,例如在某个页面中,只允许用户在一定时间内发送一定数量的请求。
这些限流策略主要依赖于使用debounce、throttle和setTimeout等函数来实现,或者使用第三方库例如lodash来实现限流。