如何控制秒杀商品页面购买按钮的定时点亮
本文节选自李智慧著《大型网站技术架构——核心原理与案例分析》一书,版权归原作者所有。本文为个人记录,方便查阅用。
购买按钮只有在秒杀活动开始的时候才能点亮,在此之前是灰色的。如果该页面是动态生成的,当然可以在服务器端构造相应页面输出,控制该按钮是灰色还是点亮,但是为了减轻服务器端负载压力,更好地利用CDN、反向代理等性能优化手段,该页面被设计为静态页面,缓存在CDN、反向代理服务器上,甚至用户浏览器上。秒杀开始时,用户刷新页面,请求根本不会到达应用服务器。
解决办法是使用JavaScript,在秒杀商品静态页面中加入一个JavaScript文件引用,该JavaScript文件中加入秒杀是否开始的标志和下单页面URL的随机参数(秒杀开始之前,标志为false,随机参数为空),当秒杀开始的时候生成一个新的JavaScript文件(秒杀开始之后,标志为true,随机参数为为服务端动态生成的随机参数)并被用户浏览器加载,控制秒杀商品页面的展示。这个JavaScript文件使用随机版本号,并且不被浏览器、CDN和反向代理服务器缓存。
这个JavaScript文件非常小(主要放置秒杀开始后变更的2个动态参数),即使每次浏览器刷新都访问JavaScript文件服务器也不会对服务器集群和网络带宽造成太大压力。
秒杀系统的注意事项:
1.秒杀系统独立部署——防止对现有网站业务造成冲击;
2.秒杀商品的页面静态化——缓解高并发下应用和数据库的负载压力;
3.租借秒杀活动带宽——防止带宽不足问题;
4.动态生成随机下单页面URL——防止知道URL后直接下单;
PS:由于秒杀商品数量通常极少,可以直接在集群的每台下单服务器上都设置一个最大下单数来限制本服务器上提交的请求数,超过该高数目后,其他请求直接跳转至秒杀活动结束页面。这样可以在在全局判断之前在每台服务器上完成初步过滤。
如何控制秒杀商品页面购买按钮的定时点亮相关推荐
- 按键控制LED定时点亮c语言,单片机定时中断循环点亮LED灯,我有个51单片机的实验,要求51单片机的P1口外接发光二极管依。...
网友问答: #include #include #define uchar unsigned char#define uint unsigned intsbit ds=P2^2;sbit dula=P ...
- ecshop商品页面附件下载,京东淘宝购买,自定义按钮自定义连接
ecshop商品页自定义按钮自定义连接_附件下载,去京东淘宝购买,查看演示按钮,ecshop商品页面附件下载,京东淘宝购买,自定义按钮自定义连接,ecshop商品页增加多个连接按钮,可以设置自定义超链 ...
- B2C电商项目(第十四天、秒杀前端、秒杀商品存入缓存、秒首页实现、时间菜单、倒计时、加载商品列表、抢购按钮 )
秒杀前端 课程内容 : 1)了解秒杀需求 2) 完成秒杀商品存入缓存 3) 完成秒杀首页实现 一.秒杀业务分析 1.1 需求分析 所谓"秒杀",就是网络卖家发布一些超低价格的商品, ...
- 秒杀商品html页面,jQuery实现每日秒杀商品倒计时功能
html & js: jQuery每日秒杀倒计时 倒计时 COUNT DOWN 距离结束还剩 00 00 00 $(document).ready(function () { var oDat ...
- 高并发下秒杀商品,你必须知道的9个细节
前言 高并发下如何设计秒杀系统?这是一个高频面试题.这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识. 秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10个 ...
- 高并发下秒杀商品,必须知道的9个细节
高并发下如何设计秒杀系统?这是一个高频面试题.这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识. 秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10个)的商 ...
- 高并发下秒杀商品细节
高并发下如何设计秒杀系统?这是一个高频面试题.这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识. 秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10个)的商 ...
- 【python初学者日记】selenium初体验——“秒杀商品”、“清空购物车”技能养成记(一)
[python初学者日记]selenium初体验--"秒杀商品"."清空购物车"技能养成记(一) 用python解决"清空购物车".&quo ...
- 为什么我总是不能抢买到“秒杀商品”?
来点硬货.抢秒杀商品,你以为电商系统(背后的程序员)会那么轻易让你得逞吗? 每年双十一的秒杀商品,很多人都抱怨抢不到:要么一秒抢完,要么点到付款页面后就疯狂加载,等加载完商品也没了.这时候有些人会动些 ...
最新文章
- javascript es6 module 模块 的使用
- 分拆之后又有大动作,惠普的下一步怎么走?
- arcmap创建空间索引_mysql搜索引擎你会用了么
- git stash 强制恢复_git操作与分支管理规范
- 信息学奥赛一本通C++语言——1126:矩阵转置
- React 的慢与快:优化 React 应用实战
- MyEclipse中搭建spring-boot+mybatis+freemarker框架
- Mac os 10.15配置Java14和Eclipse环境
- 师妹:3D视觉方向的招聘,有哪个比较好的社区呢?
- 拓扑排序:LC 207. 课程表 210. 课程表 II
- SD卡的详细资料(开发文档)
- wps出现安装installer_我安装WPS2002时显示,该计算机缺少installscript引擎,请运行i
- kubectl命令的使用、滚动更新以及回滚操作
- 淘宝模拟登录 +淘宝商品详情数据、淘宝商品列表数据爬取
- 4维俄罗斯方块 java,课内资源 - 基于Easyx插件的俄罗斯方块游戏的设计与实现
- 机器学习与统计建模 —— 归一化和标准化
- 数据结构-矩阵-三角矩阵(Java语言)
- 数据可视化带你了解关于妈妈们的那些事儿
- CDMA、CDMA2000、WCDMA、TD-SCDMA的区别
- 自适应滤波器的原理及输入序列总结