小米商城抢购时的JavaScript代码,分析一下
来源: 阅读:1502 次 日期:2015-03-18 11:17:26
温馨提示: 小编为您整理了“小米商城抢购时的JavaScript代码,分析一下”,方便广大网友查阅!

小米抢购时的JS代码,分析一下吧,返回的ajax代码:

hdcontrol({"stime":1381645438,"status":{"allow":false,"miphone":{"hdstart":false,"hdstop":false,"hdurl":"","duration":null},"mibox":{"hdstart":false,"hdstop":false,"hdurl":"","duration":null}}})

function forNum(a){

return 10>a?"0"+a:a

}

function countdown(a,b){

var c=new Date(b).getTime()/1e3,

d=c-a,

e=parseInt(d%60),

f=parseInt(d/60%60),g=parseInt(d/3600%24),

h=parseInt(d/3600/24),

i=[e.toString(),

f.toString(),

g.toString()];

return 0>=d?["00小时00分00秒",!0]:h>0?(window._timestr=h+"天"+forNum(i[2])+"时"+forNum(i[1])+"分"+forNum(i[0])+"秒",[h+"<span>天</span>"+forNum(i[2])+"<span>时</span>"+forNum(i[1])+"<span>分</span>"+forNum(i[0])+"<span>秒</span>",!1]):(window._timestr=forNum(i[2])+"时"+forNum(i[1])+"分"+forNum(i[0])+"秒",[forNum(i[2])+"<span>时</span>"+forNum(i[1])+"<span>分</span>"+forNum(i[0])+"<span>秒</span>",!1])}

function WebEventTrigger(a,b){

try{

if(WE&&WE.trigger)

return"string"!=typeof b&&(b=JSON.stringify(b)),WE.trigger(a,b)

}catch(c){}

return!1

}

function isApp(){

try{

if(WE)return!0

}catch(a){}

return!1

}

var quickBuy={init:function(){

var a=this;

this.config={},

this.config.hdurl={miphone:"m3/840410D8656D74E5F334591BD8A408A726799AEC13477D90B5E48DAD36547351/4334F49A1EE391261005E8AC5A0C9D2FDA23BB72A2D20AB3F58343496FD4983D/tip_SaledOverAll.html",mibox:"tv/B1CF7B57BFEAE1EBC37700694C123D894C668BF11F6F25D59311FD36942B3D6A/130F1B18D11F53CA1D0147B24E926C5A9B7676E57BE3D47959D6557545E8A339/tip_SaledOverAll.html"

},

this.config.mode="",

this.mode={miphone:!1,mibox:!1},

this.modeModals={miphone:"#modal_miphone",mibox:"#modal_mibox"},

this.modeCookies={miphone:"xm_hd_so_phone",mibox:"xm_hd_so_box"},

this.config.startDate=+new Date("10/15/2013 12:00:00"),

this.maskLoad=$("#maskLoad"),

this.config.minSignTime=120,

this.results=null,

this.timer=null,

this.timeCount=Math.floor(Math.abs(10*Math.random()-5))+5;

var b=!0;

for(var c in this.mode)

$.cookie(this.modeCookies[c])||(b=!1),$.cookie(this.modeCookies[c])&&this.saleOut();

b||($.cookie("xm_diff_hd")?(this.config.serverTime=this.localTime()+parseInt($.cookie("xm_diff_hd"),10),this.config.serverTime>=parseInt(this.config.startDate/1e3,10)?$.cookie("xm_hd_so_phone")&&$.cookie("xm_hd_so_box")||this.getData(!0,function(){a.goBuy()}):this.launch()):this.getData())},getData:function(a,b){

var c=this,a=a||null;

b&&(b=b),

$.ajax({

",

dataType:"jsonp",

jsonpCallback:"hdcontrol",

timeout:7e3,

beforeSend:function(){

c.maskLoad.css("display","block")},

error:function(){

c.maskLoad.css("display","none"),

alert("服务器压力山大,请您重新刷新页面!")

},

success:function(d){

if(c.maskLoad.css("display","none"),"undefined"==typeof d)

return alert("服务器压力山大,请您重新刷新页面!"),

void 0;

if(c.results=d,a||(c.config.serverTime=c.results.stime),!$.cookie("xm_diff_hd")){

var e=parseInt(c.config.serverTime-c.localTime(),10);

$.cookie("xm_diff_hd",e,{

path:"/",

domain:".xiaomi.com",

expires:1

})

}

if(a){

c.initialData();

for(var f in c.mode)

if(c.config[f].hdstart===!1&&c.config[f].hdstop===!0){

var g=c.modeCookies[f];

$.cookie(g,1,{path:"/",domain:".xiaomi.com",expires:1}),

c.saleOut()

}else b&&b.call()

}

a||c.launch()

}})},

initialData:function(){

this.config.allow=this.results.status.allow,

this.config.mibox=this.results.status.mibox,

this.config.miphone=this.results.status.miphone

},

launch:function(){

this.timeStart(),

this.countdown()

},

timeStart:function(){

var a=this,

b=1e3*a.config.serverTime,

c=a.config.startDate,

d=c-1e3*60*a.config.minSignTime;

b>=d&&c>b&&!isApp()?

$.cookie("userId")?

($("#view_button").css("visibility","hidden"),

$("#purchase_btn_1").html('<a href="" class="btn_buy">活动详情</a>'),

$("#purchase_btn_2").html('<a href="javascript:;" class="btn_buy btn_02">已经登录</a>')):a.toLogin():b>=c&&a.toBuy()

},

toLogin:function(){

$("#view_button").css("visibility","hidden"),

$("#purchase_btn_1").html('<a href="" class="btn_buy">活动详情</a>'),

$("#purchase_btn_2").html('<a href="javascript:;" class="btn_buy btn_02">提前登录</a>'),

$("#purchase_btn_2").find(".btn_02").on("click",function(){

WebEventTrigger("login",null)||(window.location.href="))}

)},

countdown:function(){

var a=this,

b=null,

c=a.config.startDate;

b=a.config.serverTime?a.config.serverTime:parseInt(+new Date/1e3,10);

var d=c-1e3*60*a.config.minSignTime,

e=setInterval(function(){

var f=countdown(b,c);

f[1]?(clearInterval(e),$("#countdown").css("display","none"),a.toBuy()):(1e3*b!=d||isApp()||($.cookie("userId")?($("#view_button").css("visibility","hidden"),

$("#purchase_btn_1").html('<a href="" class="btn_buy">活动详情</a>'),

$("#purchase_btn_2").html('<a href="javascript:;" class="btn_buy">已经登录</a>')):a.toLogin()),b++),

$("#countdown").html(f[0])},1e3)},

toBuy:function(){

var a=this;

a.goBuy();

var b=a.modeModals[a.config.mode];

$(b).find(".close").on("click",function(){

$(b).css("display","none"),

window.clearTimeout(a.timer),

a.timer=null})},

saleOut:function(){

var a={miphone:"#purchase_btn_2",mibox:"#purchase_btn_1"},

b={miphone:""},

c={miphone:"支付小米手机3",mibox:"支付小米电视"};

for(var d in this.mode)

$.cookie(this.modeCookies[d])&&($(a[d]).html('<a href="'+b[d]+'" class="btn_buy">'+c[d]+"</a>"),

$(this.modeModals[d]).is(":visible")&&$(this.modeModals[d]).find(".close").click())},

localTime:function(){

var a=parseInt(+new Date/1e3,10);

return a

},

toProcess:function(a){

var b=this,

c=b.timer,

d=b.timeCount||10,e=$(b.modeModals[a]).find(".re_countdown"),

f=$(b.modeModals[a]).find(".modal_btn"),

g=function(){0==d?(f.html('<a href="javascript:;" class="into_buy_btn">进入活动</a>'),

b.toBuyGo(b.config.mode),

c&&window.clearTimeout(c),

c=null):(e.html("("+d+")"),

d--,

b.timer=window.setTimeout(function(){g()},1e3))};

c&&window.clearTimeout(c),g()},

goBuy:function(){

var a=this,

b={miphone:"购买小米手机3",mibox:"购买小米电视"},

c={miphone:"#purchase_btn_2",mibox:"#purchase_btn_1"};

for(var d in a.mode)

$.cookie(a.modeCookies[d])||($(c[d]).html('<a href="javascript:;" class="btn_buy btn_buy_go" data-type="'+d+'">'+b[d]+"</a>"),

$(c[d]).is(":hidden")&&$(c[d]).css("display","block"));

$("#open_button").find(".btn_buy_go").on("click",function(){a.mode[$(this).attr("data-type")]=!0;

var b=a.config.mode=$(this).attr("data-type");

if($.cookie("userId"))a.getData(!0,function(){

$(a.modeModals[b]).css("display","block"),

$(a.modeModals[b]).find(".close").on("click",function(){

$(a.modeModals[b]).css("display","none"),window.clearTimeout(a.timer),a.timer=null}),a.toProcess(b)});

else{if(WebEventTrigger("login",null))return;

window.location.href=")}})},

toBuyGo:function(a){

var b=this;

window.clearTimeout(b.timer),

b.timer=null,

$(b.modeModals[a]).find(".modal_btn").find(".into_buy_btn").on("click",function(c){c.preventDefault(),b.getData(!0,function(){

if($(b.modeModals[a]).css("display","block"),b.config.allow)if(b.config[a].hdurl){

var c="";

window.setTimeout(function(){window.location.href=c},500)

}else{

var d="];

window.setTimeout(function(){window.location.href=d},500)

}else if(

b.config[a].hdstart===!1&&b.config[a].hdstop===!0){

var d="];

window.setTimeout(function(){window.location.href=d},500)

}else $(b.modeModals[a]).find(".modal_btn").html('<a href="javascript:;" class="re_enter">重新进入<span class="re_countdown"></span></a>'),

b.toProcess(a)

})})}};

更多信息请查看IT技术专栏

更多信息请查看脚本栏目
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map