简单 -> 复杂
1.页面重复点击请求。解决办法:用户点击一次后,js执行remove该元素的onclick属性。
2.页面超链接错误引起的重复请求。解决办法:使用debug模式查找到执行的js,找出错误的链接即可。
3.浏览器等内置重复请求。浏览器请求时,如果服务器长时间未返回,则可能会自动重复请求,从而造成多次发送requst,重复执行一个controller方法。
主要是针对需要异步请求时的解决方案。
解决方法:
1)最优推介,使用线程。在controller的方法中添加线程处理,将需要异步请求的、复杂的、需要时间过长的业务交给一个线程处理。然后快速返回提示信息到客户 端,从而避免客户端因为长时间没返回而重复发送请求。
例如:购物时,客户端下单时,服务端获取参数后,先传入到线程,然后由线程去处理即可,原有业务继续执行完返回给客户端,达到缩短请求响应时间的目的。
2)使用定时器处理。将参数插入指定表或队列后直接返回给客户端,业务处理则又定时器去处理。
3)通过ActiveMQ。将数据放入队列,又队列的响应端处理业务。