方案一:
小程序前端:做好请求判断,请求前:设置常量变为0 ,触发网络请求接口 常量变为 1,回调成功常量设置 0 ,每次请求前判断常量是否为 1,为1 即意味着上次请求回调没有接收到。防止多次请求。
但是实际效果并不是很好。
方案二:(针对所有的涉及到api前端请求问题)
服务端:其实封装一个方法,在每次请求之前调用此方法,统一所有请求的入口,然后以API请求的地址,参数,请求类型(get,post)等组装为唯一key缓存起来。(确保唯一性)(设置缓存时间为5分钟,这个根据业务调整)。当URL请求结束返回(不考虑业务完成情况),只要请求完成则删除缓存的key,这样就能知道某个请求的完成状态,当第二个相同的请求过来时,我们可以根据上一次的状态来判断下一步的操作。
三、请求频度
相信大家碰到过这样的业务,我们允许它重复点击(或者其他用户事件),但是不允许在一定的时间内超过次数XX次。这从用户友好体验及服务器承受压力选取了一个折中方案。
最合适不过的例子,莫过于关键字搜索匹配了。