麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > JavaScript > 正文

javascript 實(shí)現(xiàn) 秒殺,團(tuán)購(gòu) 倒計(jì)時(shí)展示的記錄 分享

2019-11-20 22:31:51
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

最近做了一個(gè)房產(chǎn)的秒殺,團(tuán)購(gòu)的電子商務(wù)網(wǎng)站(房子也有秒殺,出手不小啊),其中里面有一個(gè)秒殺的倒計(jì)時(shí)展示,主要是判斷當(dāng)前時(shí)間距離秒殺開(kāi)始還有多少時(shí)間,還有秒殺開(kāi)始和秒殺結(jié)束的各種展示。
其中最主要的一點(diǎn)就是所謂的當(dāng)前時(shí)間不能使用瀏覽器通過(guò)new Date()獲取的客戶端時(shí)間,這樣只要用戶修改了自己的機(jī)器時(shí)間那么倒計(jì)時(shí)就會(huì)亂透了,所以這個(gè)當(dāng)前時(shí)間必須使用的是服務(wù)器時(shí)間,所以采用的是靜態(tài)緩存頁(yè)面所以這個(gè)當(dāng)前時(shí)間使用ajax方式進(jìn)行獲取

復(fù)制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta content="all" name="robots" />
<meta name="author" content="" />
</head>
<body onload='start()'>
.
距活動(dòng)開(kāi)始還有:<span id="sk_time"></span> <!-- 這個(gè)是倒計(jì)時(shí)的顯示 -->
.
<br/>
<span id="wyz">
<span class="btn_02">  參加秒殺!!!  </span> <!-- 這個(gè)是秒殺按鈕,倒計(jì)時(shí)為0時(shí)會(huì)變成可以秒殺的樣式 -->
</span>
.
<script type="text/javascript">
var msbegintime = "1323446400000"; //這個(gè)是活動(dòng)開(kāi)始的時(shí)間戳
var msendtime = "1325174400000"; //這個(gè)是活動(dòng)結(jié)束的時(shí)間戳
function start(){
    callBackServerTime("sk_time", "wyz", msbegintime, msendtime);
}
//_showtimediv:時(shí)間顯示區(qū)域,_showqdiv:狀態(tài)顯示區(qū)域
//這個(gè)向服務(wù)器發(fā)送一個(gè)ajax請(qǐng)求,服務(wù)器返回服務(wù)器當(dāng)前的時(shí)間戳,也就是xmlobj.responseText是一個(gè)服務(wù)器的時(shí)間戳
function callBackServerTime(_showtimediv, _showqdiv, _ms_begintime, _ms_endtime) {
    var now = new Date();
    var urlstr = "random=" + Math.round(Math.random() * 10000000);
    var ajaxobj = new AJAXRequest;    // 創(chuàng)建AJAX對(duì)象
    ajaxobj.method = "GET";   // 設(shè)置請(qǐng)求方式為GET
    ajaxobj.url = "/gz/source/getServerTime.do?" + urlstr; //注意ajax的跨域問(wèn)題
    ajaxobj.callback = function(xmlobj) {
        //ShowQTime(xmlobj.responseText, _showtimediv, _showqdiv, _ms_begintime, _ms_endtime, _tryid,sourceid);
        ShowQTime( _showtimediv, _showqdiv,"1323158067288", _ms_begintime, _ms_endtime);     // 這里使用靜態(tài)數(shù)字替代 xmlobj.responseText 方便測(cè)試
    }
    ajaxobj.send();    // 發(fā)送請(qǐng)求
}
//動(dòng)態(tài)顯示”秒殺“時(shí)間函數(shù)
function ShowQTime(_showtimediv, _showqdiv, _nowtime, _ms_begintime, _ms_endtime) {
    _nowtime = Number(_nowtime);
    var timmer = Math.floor((_ms_endtime - _nowtime) / (1000));
    if (_nowtime >= _ms_begintime && timmer > 0) {;
        //秒殺進(jìn)行中
        document.getElementById(_showtimediv).innerHTML = "<span class='pim_time'>0</span>天<span class='pim_time'>0</span>小時(shí)<span class='pim_time'>0</span>分鐘<span class='pim_time'>0</span>秒";
        document.getElementById(_showqdiv).innerHTML = "<span class='btn_01'><a href='/gz/sk/v/'>  秒殺開(kāi)始了!!!  </a></span>";
    } else {
        //秒殺倒計(jì)時(shí)
        var nMS = _ms_begintime - _nowtime;  //計(jì)算出開(kāi)始時(shí)間和現(xiàn)在時(shí)間的時(shí)間戳差
        var nD = Math.floor(nMS / (1000 * 60 * 60 * 24));
        var nH = Math.floor(nMS / (1000 * 60 * 60)) % 24;
        var nM = Math.floor(nMS / (1000 * 60)) % 60;
        var nS = Math.floor(nMS / 1000) % 60;
        var nMS = Math.floor(nMS / 100) % 10;
        if (nD >= 0) {
            var _timestr = "";
            var snd = nD.toString();
            if (snd.length == 1) {
                snd = "0" + snd;
            }
            _timestr += "<span class='pim_time'>" + snd.substring(0, 1) + snd.substring(1, 2) +"</span>天";
            var snH = nH.toString();
            if (snH.length == 1) {
                snH = "0" + snH;
            }
            _timestr += "<span class='pim_time'>" + snH.substring(0, 1) + snH.substring(1, 2) +"</span>小時(shí)";
            var snM = nM.toString();
            if (snM.length == 1) {
                snM = "0" + snM;
            }
            _timestr += "<span class='pim_time'>" + snM.substring(0, 1) + snM.substring(1, 2) +"</span>分鐘";
            var snS = nS.toString();
            if (snS.length == 1) {
                snS = "0" + snS;
            }
            _timestr += "<span class='pim_time'>" + snS.substring(0, 1) + snS.substring(1, 2) +"</span>秒";
            document.getElementById(_showtimediv).innerHTML = _timestr;
        }else {
            //秒殺結(jié)束
             document.getElementById(_showtimediv).innerHTML = "<span class='pim_time'>0</span>天<span class='pim_time'>0</span>小時(shí)<span class='pim_time'>0</span>分鐘<span class='pim_time'>0</span>秒";
             document.getElementById(_showqdiv).innerHTML = "<span class='btn_01'><a href='/gz/sk/v/'>  秒殺結(jié)束了!!!  </a></span>";
        }
    }
    //注意 (_nowtime + 1000) 增加 1 秒
    setTimeout("ShowQTime('" + _showtimediv + "','" + _showqdiv + "','" + (_nowtime + 1000) + "','" + _ms_begintime + "','" + _ms_endtime + "')", 1000);
}
function AJAXRequest() {
    var xmlObj = false;
    var CBfunc,ObjSelf;
    ObjSelf=this;
    try { xmlObj=new XMLHttpRequest; }
    catch(e) {
        try { xmlObj=new ActiveXObject("MSXML2.XMLHTTP"); }
        catch(e2) {
            try { xmlObj=new ActiveXObject("Microsoft.XMLHTTP"); }
            catch(e3) { xmlObj=false; }
        }
    }
    if (!xmlObj) return false;
    this.method="POST";
    this.url;
    this.async=true;
    this.content="";
    this.callback=function(cbobj) {return;}
    this.send=function() {
        if(!this.method||!this.url||!this.async) return false;
        xmlObj.open (this.method, this.url, this.async);
        if(this.method=="POST") xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        xmlObj.onreadystatechange=function() {
            if(xmlObj.readyState==4) {
                if(xmlObj.status==200) {
                    ObjSelf.callback(xmlObj);
                }
            }
        }
        if(this.method=="POST") xmlObj.send(this.content);
        else xmlObj.send(null);
    }
}
</script>
</body>
</html>

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲成人在线视频网站 | 秋霞a级毛片在线看 | 欧美老逼 | 亚州欧美视频 | 免费视频xxxx | 亚洲看片网 | 二区三区四区 | 久草在线免费看 | 国产成人小视频在线观看 | 午夜视频在线免费观看 | 久久精品国产清自在天天线 | 一区二区三区国产在线 | 日本xxxx色视频在线观看免费, | 美女污污视频在线观看 | 欧美成人精品欧美一级乱黄 | 日韩剧情片 | 黄色av一区二区三区 | 欧美a∨一区二区三区久久黄 | 九九视屏 | 久久久www成人免费精品 | 92看片淫黄大片一级 | 日本精品视频一区二区三区四区 | 羞羞的动漫在线观看 | 成人黄色短视频在线观看 | 一级在线 | 在线看免电影网站 | 亚洲精品一区二区三区在线看 | 毛片在线免费 | 欧美日本一区二区 | 欧美激情视频一区二区免费 | 免费久久久久 | 蜜桃网站在线观看 | 成人免费看毛片 | 欧美a视频| 激情小说激情图片激情电影 | 免费啪视频在线观看 | av在线播放电影 | 日韩视频在线视频 | 国产乱淫av片免费观看 | 久久艹综合 | 精品久久久一二三区播放播放播放视频 |