如何避免点赞取消频繁多次调接口?

如何避免点赞取消频繁多次调接口?

重复点赞取消浪费流量,如何判断只在有效点赞时调用接口

定义一个变量,当点赞之后记录点赞时的时间戳,然后下次点赞时获取点赞时的时间时间戳与上次的时间时间戳比较,如果两个点赞间隔在几秒内就不调用接口就行了,例如用第二次点赞时间戳减去第一次点赞时的时间戳大于2000时(也就是两秒)在调用接口,否则不调用

你这都没说清楚
点赞、取消是否同一个控件,是否分别都会调用接口

什么叫有效,点了半小时不改算有效吗

我理解楼主指的是如何防止用户重复点击触发多次接口调用吧?我有两点看法:
1.前端做好防重校验,用户点击点赞或者取消后,只要后端没有返回结果,前端按钮置灰或者一直转圈,不让用户重复多次点击同一个按钮!
2.后端做好防重校验,利用redis的自增,比如该接口2秒钟内允许用户调用一次,那么判断redis increby返回的数是否大于1,大于1返回操作频繁。

Long incr = cacheService.increment("thumbsuporcancel-"+userId, 2, TimeUnit.SECONDS);
 if (incr > 1) {
        logger.warn("点赞, 请求次数频繁, userId:{}", userId);
        throw new Exception(“操作频繁”);
  }

从业务层上,用户点赞和取消点赞之间是不应该设计时间差的。从程序开发层面上,按键的点击响应时间应该做防抖(即快速连点)。用户第一次点击时记下时间戳,第二次点击时,与上一次的时间戳进行比较,小于一个阈值时,不调用接口。一般是500-800毫秒