Imooc·Java高并发秒杀API(JavaScript模块化)
2016-06-12 17:27
417 查看
Imooc·Java高并发秒杀API(JavaScript模块化)
一、seckill.js
var seckill = { URL:{ now:function(){ return '/seckill/time/now'; }, exposer:function(seckillId){ return '/seckill/'+seckillId+'/exposer'; }, kill:function(seckillId,md5){ return '/seckill/'+seckillId+'/'+md5+'/execution'; } }, handlerSeckillKill:function(seckillId,node){ node.hide().html('<button class="btn btn-primary btn-lg" id="killBtn">开始秒杀!</button>'); //$.post('url',{},function(result){ $.post(seckill.URL.exposer(seckillId),{},function(result){ if(result && result['success']){ var exposer = result['data']; //console.log("data"+data); if(exposer['exposed']){ var md5 = exposer['md5']; //var killUrl = '/seckill/'+seckillId+'/'+md5+'/execution'; var killUrl = seckill.URL.kill(seckillId,md5); $('#killBtn').one('click',function(){ $(this).addClass('disabled'); $.post(killUrl,{},function(data){ if(data && data['success']){ var result = data['data']; var state = result['state']; var stateInfo = result['stateInfo']; //node.html(stateInfo); node.html('<span class="label label-success">'+stateInfo+'</span>'); } }); }); node.show(); } else { var now = exposer['now']; var start = exposer['start']; var end = exposer['end']; seckill.countdown(seckillId,now,start,end); } } else {console.log("data"+data);} }); }, validatePhone:function(phone){ if(phone && phone.length == 11 && !isNaN(phone)) return true; else return false; }, countdown:function(seckillId,nowTime,startTime,endTime){ var seckillBox = $('#seckill-box'); if(nowTime > endTime) seckillBox.html('秒杀结束!'); else if(nowTime < startTime) { var killTime = new Date(startTime + 1000); seckillBox.countdown(killTime,function(event){ var format = event.strftime('秒杀计时:%D天 %H时 %M分 %S秒'); seckillBox.html(format); }).on('finish.countdown',function(){ seckill.handlerSeckillKill(seckillId,seckillBox); }); } else seckill.handlerSeckillKill(seckillId,seckillBox); }, detail:{ init:function(params){ var killPhone = $.cookie('killPhone'); if(!seckill.validatePhone(killPhone)){ var killPhoneModal = $('#killPhoneModal'); killPhoneModal.modal({ show: true, backdrop: 'static', keyboard: false }); $('#killPhoneBtn').click(function(){ var inputPhone = $('#killPhoneKey').val(); if(seckill.validatePhone(inputPhone)){ $.cookie('killPhone',inputPhone,{expires:7,path:'/seckill'}); window.location.reload(); } else { $('#killPhoneMessage').hide().html('<label class="label label-danger">手机号错误!</label>').show(300); } }); } //$.get('/seckill/time/now',{},function(result){ var startTime = params['startTime']; var endTime = params['endTime']; var seckillId = params['seckillId']; $.get(seckill.URL.now(),{},function(result){ if(result && result['success']){ var nowTime = result['data']; seckill.countdown(seckillId,nowTime,startTime,endTime); } else { console.log("data"+data); } }); } } }
二、效果图
相关文章推荐
- js方法控制html表格的增加和删除
- Ext Js MVC系列一 环境搭建和MVC框架整体认识
- Loadrunner模拟JSON接口请求进行测试
- js运行上下文
- js到底是个啥?
- JavaScript中实现键值对应的字典与哈希表结构的示例
- jsp开发模式
- JS中常用的输出方式(五种)
- Sublime Text3 js语法错误提示
- moment.js获取除本季度外的前四个季度
- jstree级联查找树
- underscore.js源码分析
- js闭包解决多个点击事件
- JavaScript中mouseover和mouseout多次触发解决办法
- js通过定时器去显示当前时间及停止
- js定义数组
- javascript调试
- js 时间间隔执行函数
- JSTL的相关使用
- javascript模拟sleep