今天被问到如何优化一个秒杀系统?
其实这是一个老生长谈的问题,但这种问题一般都问服务端,我还特意问了这个需要前端来做优化吗?人家强调怎么在前端做会更好?
我当时的回答是限流,让按钮置灰,然后加入动画优化,让用户有更好的体验。人家追问还有吗?
我就不太了解了,回来之后我在网上查了一下,下面把看到的总结一下,如果还有更多的方案,欢迎补充,我想到的话也会回来补充的,
在秒杀系统中,前端能进行的优化点:
- 限流,点击提交按钮后按钮置灰,显示为正在排队中,能处理结束或若干秒后,才允许用户点击
- 页面静态化,将页面做成静态页面,不经过webserver的处理,直接返回
- CDN分流,将页面放在CDN上,用户刷新页面直接返回,不必惊动服务器
- 商品数量显示,使用倒计时,倒计时结束后,使用动画模拟数量减少,此处可能涉及使用长连接,长轮询等方法来保持与后端库存数量的一致(待定)
- 秒杀开始前不让用户进入秒杀页面,在开始后,使用动态URL,例如携带随机数的URL,让用户通过按钮点击进入页面