做了个应用,里面是有点赞的,我想这还不简单,没想到在组长的快速点击下就出问题了。
就是如下的效果:
原先的想法及出现的问题
一开始我是觉得,点击之后发起请求,将数据传递给后端,等数据再传回来的时候就将赞的颜色变蓝并将点赞数加1。然后取消点赞也是一样的思路。
但是在快速点击下,数字竟然开始出现负数
。
具体原因是什么我也不是非常清楚,可以肯定的是请求速度跟不上导致的,并且应该跟ajax本身特性及js本身特性有关。
解决方法
后来我不采取在请求之后进行颜色改变及数量改变,而是在请求之前进行这些操作,就是beforesend。这下子就解决了该问题,数量不会再为负了。
终极决绝方法
终极解决方法就是数量在后端进行增减并传过来,这样就不会有问题了,当然这跟数据库的设计有关。