您的位置:首页 > Web前端 > JavaScript

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);
}
});
}
}
}

二、效果图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: